首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有UITextFieldDelegate?

有没有UITextFieldDelegate?
EN

Stack Overflow用户
提问于 2010-08-28 23:43:31
回答 1查看 571关注 0票数 2

我对使类符合UITextFieldDelegate很好奇,在过去我总是添加它来支持对协议中定义的方法的访问。然而,这一次我忘了添加它,后来才意识到它丢失了。我的问题是,为什么它在有或没有它的情况下工作,我认为它是正确访问协议方法所必需的?

代码语言:javascript
复制
@interface MyController : UIViewController <UITextFieldDelegate> {
    UITextField *text_001;
}
@property(nonatomic, retain) IBOutlet UITextField *text_001;
@end

或者:

代码语言:javascript
复制
@interface MyController : UIViewController {
    UITextField *text_001;
}
@property(nonatomic, retain) IBOutlet UITextField *text_001;
@end

通过以下方式:

代码语言:javascript
复制
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    NSLog(@"Return: ... ");
    [textField resignFirstResponder];
    return YES;
}

干杯加里

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-28 23:51:00

委托声明实际上只是作为编译器的提示;显然,您仍然需要实现底层方法。然而,它的主要目的是让编译器在赋值时再次检查你。如果您尝试手动(在代码中,而不是在IB中)分配一个未声明的委托,您将经常收到编译器警告。

因为Objective-C对大多数东西都使用了鸭子类型(如果它走起来像鸭子,叫起来像鸭子;如果它响应-textFieldShouldReturn:,等等),那么你是非常安全的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3591354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档