成人免费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-26 10:09:08

iPhone 多語言 國際化

2011-07-29 14:08:26

iPhone UTF-8 XML

2011-05-24 10:30:31

PythonNetBeans ID

2011-07-20 15:58:58

iPhone 應用程序 生命周期

2010-08-27 10:41:41

iPhone核心應用程序

2011-07-21 15:56:32

iPhone 截屏

2011-07-27 17:30:40

iPhone Locate 定位
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人在线视频观看 | 国产不卡视频在线 | 81精品国产乱码久久久久久 | 九九精品在线 | 成人婷婷 | 久久大| 欧美日韩在线精品 | 福利视频网址 | 人干人操 | 国产999精品久久久 精品三级在线观看 | 综合久久av | 成年人在线视频 | 亚洲综合久久网 | 欧美jizzhd精品欧美巨大免费 | 911精品国产 | 日韩一区二区三区在线视频 | av毛片在线播放 | 欧美一级毛片久久99精品蜜桃 | 国产精品成人久久久久 | 91精品国产91久久久久久吃药 | 亚洲第一黄色网 | 91在线综合| 欧美视频精品 | 亚洲精品久久久 | 天堂中文在线观看 | 91麻豆精品国产91久久久更新资源速度超快 | 激情在线视频网站 | 欧美成人一区二免费视频软件 | 黄色毛片视频 | 日韩免 | 国产乱码久久久久久 | 久久不卡| 亚洲天堂久久新 | 欧美日韩在线观看一区 | 精品福利视频一区二区三区 | 亚洲欧美国产毛片在线 | 日韩三级 | 国产激情一区二区三区 | 91久久精品| 成人精品国产 | 日韩a在线 |