Я представляю контроллер вида как модальный.Этот контроллер представления имеет несколько UITextFields, подключенных через IB.
Моя проблема в том, что при нажатии клавиши возврата вызывается метод делегата, но по какой-то причине вызов resignFirstResponder для данного textField не выполняется.Даже если я выведу сообщение на консоль в методе делегата textFieldShouldReturn, оно будет напечатано, но оно просто откажется вызывать метод resign.
В методе делегата shouldReturn у меня есть только:
-(BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
Этого никогда раньше не случалось со мной, просто он не уходит в отставку.Как я упоминал ранее, я могу поместить печать в консоль, просто чтобы убедиться, что метод shouldReturn вызывается и выполняется.
Я также попытался сделать это просто, чтобы увидеть, был ли установлен делегат или нет, и он уверенвнес изменения в поведение UITextField.
-(void)textFieldDidBeginEditing:(UITextField *)textField {
[textField setTextAlignment:UITextAlignmentCenter];
}
Эта проблема действительно ставит меня в тупик.Даже когда я пытаюсь вызвать resignFirstResponder для текстового поля напрямую, клавиатура не исчезнет.
-(BOOL)textFieldShouldReturn:(UITextField *)textField {
if ([textField isEqual:self.productTextField]) {
NSLog(@"Product textfield");
[self.productTextField resignFirstResponder];
} else if ([textField isEqual:self.quantityTextField]) {
NSLog(@"Quantity textfield");
}
return YES;
}
Оба журнала работают со своими соответствующими текстовыми полями и печатают соответствующие сообщения.Но вызов метода все равно ничего не дает при отправке текстового поля напрямую.
Нашел ответ, по-видимому, UIPresentationFormSheet не позволяет избавиться от клавиатуры.Я попробовал с другим стилем представления, и это сработало.@ Cal, спасибо за твой вопрос .