#uitableview #ios4 #user-interface #uitextfield
#uitableview #ios4 #пользовательский интерфейс #uitextfield
Вопрос:
Я хотел бы обнаружить изменение в uitextfield, и когда когда-либо произойдет изменение в uitextfield, я хотел бы вызвать метод, поэтому кто-нибудь мог бы предоставить мне какой-нибудь код, показывающий, как это сделать.
спасибо, TC
Ответ №1:
UITextField вызывает этот метод в своем делегате, когда пользователь вводит новый текст:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
Вот ссылка на все методы, которые UITextField может вызывать для своего делегата.
Вы можете вернуть NO из метода, если не хотите разрешать изменение. Вы можете настроить делегирование вашего UITextControl следующим образом:
myTextField.delegate = myObjThatIsTheDelegateForThisTextField;
Возможно, это уже настроено в вашем xib-файле.
Редактировать
Чтобы подключить ваше UITextField, если вы используете InterfaceBuilder, щелкните правой кнопкой мыши на UITextField в окне и перетащите строку в куб, представляющий ваш контроллер просмотра (возможно, третий куб в MyView.xib?). Затем выберите делегировать из появившегося всплывающего окна.
Комментарии:
1. по какой-то причине это не работает: вот код, который я ввел в viewcontroller представления, где находится uitextfield: — (BOOL)TextField:(UITextField *)downloadSourceField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSLog(@»текст изменится»); }
2. Важно, чтобы делегат вашего текстового поля был установлен. Вы пробовали назначить делегат вашему viewcontroller?
3. на что мне заменить myObjThatIsTheDelegateForThisTextField?