У меня есть следующий код ниже, и я не могу понять, почему метод textFieldShouldReturn
не вызывается. Когда я использую IB для создания соединения с делегатом, это работает, но когда это делается программно, оператор журнала не отображается. Что я тут не так делаю?
Во-вторых, в textFieldShouldReturn
некоторые примеры возвращают YES
, а некоторые возвращают NO
. В документации ios указано, что возврат YES
обеспечит реализацию по умолчанию. Может кто-нибудь объяснить это поподробнее?
// .h
file
@interface GoSocietyLoginController : UIViewController <UITextFieldDelegate> {
}
- (IBAction)textFieldDoneEditing:(id)sender;
- (BOOL)textFieldShouldReturn:(UITextField *)textField;
@end
// .m
file
@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;
}