成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iPhone應用程序 Delegate使用方法詳解

移動開發 iOS
本文介紹的是iPhone應用程序 Delegate使用方法詳解,本文通過一個例子來學習Delegate的使用方法,先來看內容。

iPhone應用程序 Delegate使用方法詳解是本文要介紹的內容,通過一個實例讓我們快速的去學習,不多說,我們先來看內容。

先舉一個例子:

假如"我"的本職工作之一是“接電話”,但"我"發現太忙了或來電太雜了,于是我聘請一位"秘書"分擔我“接電話”的工作,如果電話是老板打來的,就讓“秘書”將電話轉接給“我”。。。

那么,“我”就是A Object. “秘書”就是"我"的“Delegate”。寫成代碼就是 -- [我 setDelegate:秘書];

delegate的概念出現與mvc(model-view-controller),protocol,單線繼承 密切相關

  1. The main value of delegation is that it allows you to easily customize the behavior of several objects in one central object. 

Cocoa 中處理事件的方式有幾種,其中一種是你可以重載類中的對應的事件處理方 法,比如MouseDown事件在NSResponse類中就被方法mouseDown:處理,所以所有繼承自NSResponse的類都可以重載 mouseDown:方法來實現對MouseDown事件的處理。

另外一種處理方式就是使用Delegate,當一個對象接受到某個事件或者通知的時候, 會向它的Delegate對象查詢它是否能夠響應這個事件或者通知,如果可以這個對象就會給它的Delegate對象發送一個消息(執行一個方法調用)

協議 Protocol :

我說下我的理解。object-c 里沒有多繼承。那么又要避免做出一個對象什么都會(super class monster,huge ,super,waste)一個超能對象 本身是否定了面向對象的概念和真諦了。為了讓代碼更簡潔,條理更清楚,可以將部分職責分離。

協議本身沒有具體的實現。只規定了一些可以被其它類實現的接口。

  1. @protocal UITextFieldDelegate    
  2. -(BOOL) textFieldShouldReturn:(UITextField *) textField ;    
  3. @end    
  4. @protocal UITextFieldDelegate  
  5. -(BOOL) textFieldShouldReturn:(UITextField *) textField ;  
  6. @end 

delegate 總是被定義為 assign @property

  1. @interface UITextField    
  2. @property (assign) id<UITextFieldDelegate> delegate;    
  3. @end    
  4. @interface UITextField  
  5. @property (assign) id<UITextFieldDelegate> delegate;  
  6. @end  

這樣我們就在UITextField內部聲明一個委托(delegate),那么就需要委托的代理實現UITextFieldDelegate 中約定的行為

  1. // 首先, 在接口里邊聲明要使用誰的Delegate     
  2. @interface delegateSampleViewController : UIViewController    
  3.     <UITextFieldDelegate> {}    
  4. @end    
  5.      
  6. // 然后在實現文件中初始化的時候, 設置Delegate為self(自己)     
  7. @implementation delegateSampleViewController    
  8.      
  9. // ....     
  10.     UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 300, 400)];    
  11.     textField.delegate = self;//設置當前的控制器為UITextField的代理,相當于注冊(指定)代理人     
  12.     [textField becomeFirstResponder];    
  13.     [cell.contentView addSubview:textField];    
  14.     [textField release];    
  15. // ....     
  16.      
  17. }    
  18.      
  19. // 實現UITextFieldDelegate中約定的行為     
  20. #pragma mark UITextFieldDelegate Method     
  21. // called when 'return' key pressed. return NO to ignore.     
  22. - (BOOL)textFieldShouldReturn:(UITextField *)textField {    
  23.      
  24.     [textField resignFirstResponder];    
  25.     return YES;    
  26. }  

小結:iPhone應用程序 Delegate使用方法詳解的內容介紹完了,希望本文讀你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-08-05 14:58:58

iPhone CoreAnimat 動畫

2011-07-19 14:36:32

iPhone

2011-07-26 09:41:23

iPhone xcode Mac OS X

2011-07-21 10:47:37

iPhone Cocoa 委托

2011-08-10 16:50:10

iPhone生命周期

2011-08-10 16:08:02

iPhoneProtocol協議

2011-08-16 16:40:06

iPhone應用正則表達式OgreKit

2011-08-03 17:27:40

iPhone UIScrollVi

2011-08-08 14:07:49

iPhone開發 字體

2023-08-07 09:01:42

Prism 庫開源

2011-08-10 16:57:15

iPhone事件程序包

2011-08-10 17:30:50

iphoneThree20

2012-04-26 13:48:56

iPhone應用發布Ad Hoc

2011-07-29 14:08:26

iPhone UTF-8 XML

2011-07-26 10:09:08

iPhone 多語言 國際化

2011-05-24 10:30:31

PythonNetBeans ID

2011-07-21 15:56:32

iPhone 截屏

2011-07-27 17:30:40

iPhone Locate 定位

2011-08-12 14:54:45

iPhone委托

2011-08-05 13:49:53

iPhone 應用 開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美男人天堂 | 91精品国产91久久久久久最新 | 欧美自拍另类 | 久久成人激情 | 久久一二区| yiren22 亚洲综合 | 在线播放精品视频 | 国产成人精品一区二区三区在线 | 一区二区在线 | 日韩国产欧美在线观看 | 欧美九九九 | 一区二区国产精品 | 日韩成人精品视频 | 91精品久久久久久久久久小网站 | 日本久草 | 亚洲高清成人在线 | 成人高潮片免费视频欧美 | 日本成人中文字幕 | 在线观看av网站 | 天天干天天玩天天操 | 日韩在线播放网址 | 精品入口麻豆88视频 | 一区二区视频在线观看 | 久久一二区 | 精品欧美一区二区在线观看 | 91天堂网| 亚洲第一区国产精品 | 日韩一区不卡 | 91免费版在线观看 | 久久69精品久久久久久久电影好 | 我我色综合 | 国产精品一区二区福利视频 | 蜜桃免费一区二区三区 | 国产中文在线观看 | 婷婷久久五月天 | 成人福利在线 | 色妹子综合网 | 午夜精品久久久久久久星辰影院 | 青青草视频免费观看 | 亚洲高清一区二区三区 | 欧美日韩综合精品 |