我在下面有以下代码,我无法弄清楚为什么没有调用textFieldShouldReturn
方法。当我使用IB创建与委托的连接时,它可以工作,但是当以编程方式完成时,不显示日志语句。我在这里做错了什么?
其次,在textFieldShouldReturn
中,一些示例返回YES
,一些示例返回NO
。 ios文档指定返回YES
将提供默认实现。有人可以更详细地解释一下吗?
// .h
档
@interface GoSocietyLoginController : UIViewController <UITextFieldDelegate> {
}
- (IBAction)textFieldDoneEditing:(id)sender;
- (BOOL)textFieldShouldReturn:(UITextField *)textField;
@end
// .m
档
@interface GoSocietyLoginController ()
@property (nonatomic,retain) IBOutlet UITextField *login;
@property (nonatomic,retain) IBOutlet UITextField *password;
@end
@implementation GoSocietyLoginController
@synthesize login;
@synthesize password;
- (void)viewDidLoad
{
[super viewDidLoad];
[login setDelegate:self];
[password setDelegate:self];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
NSLog(@"Hello World");
if ([textField isEqual:login]) {
[password becomeFirstResponder];
}
return NO;
}
答案 0 :(得分:0)
根据您发布的代码,我觉得您在标题中声明了这些商店:
IBOutlet UITextField *login;
IBOutlet UITextField *password;
请务必声明它们并在IB中设置连接。