У меня есть один UITextField
, и я перетаскиваю его от своего владельца, чтобы установить delegate
в раскадровке.Почему методы делегата работают без объявления соответствия протокола?
И в моем файле controller.h я не объявлял класс как соответствующий протоколу UITextFieldDelegate
.
Но - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
работает! Это просто работает!
И интересно, почему?
Я встречался с этим раньше, когда устанавливаю UITableView контроллеру, который не имеет UITableViewDelegate
и UITableViewDataSource
.
Это происходит, когда вы даете соединение между владельцем файла и инструментами подключения. поэтому метод делегирования начнет работу – bhanu
проверьте ваш xib-файл. может быть делегированным, связанным с владельцем файла – manujmv
OP не спрашивает об установке 'textField.delegate = self'. Он спрашивает, почему делегация работает, не декларируя ** соответствие ** протоколу UITextFieldDelegate' **. Просто он использует неправильную терминологию. –