У меня есть FooViewController который загружает FooView, а затем добавляет TextField:textFieldShouldReturn называется без UITextFieldDelegate
// FooViewController.m
@interface FooViewController() <UITextFieldDelegate>
@end
...
-(void)loadView {
CGRect aFrame = CGRectMake(160, 240, 100, 150);
FooView *fv = [[FooView alloc] initWithFrame:aFrame];
...
// TextField
CGRect tfRect = CGRectMake(50, 50, 150, 50);
UITextField *aTextField = [[UITextField alloc] initWithFrame:tfRect];
aTextField.borderStyle = UITextBorderStyleRoundedRect;
aTextField.returnKeyType = UIReturnKeyDone;
aTextField.delegate = self;
[fv addSubview:aTextField];
self.view = fv;
}
В этом классе реализации (FooViewController.m), у меня есть следующий метод:
-(BOOL)textFieldShouldReturn:(UITextField *)textField {
return YES;
}
Весь код работает хорошо.
Просто из любопытства я удалил упоминание <UITextFieldDelegate>
, и textFieldShouldReturn
по-прежнему вызывается. Как это возможно?
Спасибо за ваш ответ. Есть ли у вас (документация) ссылка? – Zakaria
нет, но при назначении textfield.delegate = self; он предупредит вас, что сам не отвечает на UITextFieldDelegate, но реализованные методы будут называться – l0gg3r