《IOS开发系列教程》设置委托

《IOS开发系列教程》设置委托

举个简单的例子,比如在

UIViewController里面有个UITextView

想对这个textview的光标进入和光标消失做出响应,那么我们在UIViewController里面设置将自身作为textview的代理,

比如你已经为这个控件添加了 IBOutlet了

—-  xxUIViewController.h

@interface xxUIViewController : UIViewController

@property IBOutlet UITextView* nameInput;

@end

 

—– xxUIViewController.m

@implementation xxUIViewController

– (void) viewDidLoad

{

       [self.nameInput setDelegate:self];

}

– (void) textViewDidBeginEditing: (UITextView* )textView

{

       NSLog( @"start editing");

}

@end

此时,你会发现[self.nameInput setDelegate:self]; 这一样有一个警告,说什么

Sending 'ViewController *const __strong' to parameter of incompatible type 'id<UITextViewDeletgate>?
 
要解决这个问题,回去xxUIViewController.h中,将
@interface xxUIViewController : UIViewController
改为
@interface xxUIViewController : UIViewController <UITextViewDelegate>
 
原因是objective-c中规定,如果想让某个类(A)成为另外一个类(B)的委托代理,那么这个类(A)必须继承另外一个类(B )的委托代理协议。

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章转载自:IT夜班车,否则按侵权处理.

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示