《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夜班车,否则按侵权处理.