Как заставить клавиатуру уйти в симуляторе iphone
У меня есть одно текстовое поле в моем приложении iphone, когда вы касаетесь его в симуляторе, клавиатура появляется. Но нет способа избавиться от него.
Другие веб-страницы дают решения, не объясняя, почему они должны работать, и они не работают для меня.
Говорят, что текстовое поле делегирует ваш uiview, а затем вызывает resignfirstresponder на объекте, но он никогда не вызывается.
Какие-либо предложения? Может ли кто-нибудь объяснить, что на самом деле происходит? Я могу понять это сам, если бы знал, что такое парадигма дизайна...
Возможно, мне нужно просто поместить кнопку "пойти", чтобы у меня было что-то, чтобы отвлечь фокус от текстового поля?
Ответы
Ответ 1
Один из способов сделать это - установить объект в качестве делегата в текстовое поле и реализовать
- (BOOL)textFieldShouldReturn:(UITextField *)textField
в котором вы вызываете [textField resignFirstResponder]
Это приведет к исчезновению клавиатуры, когда они нажимают кнопку return/go/done (что бы вы ни установили нижнюю правую клавиатуру).
Подробнее см. UITextFieldDelegate.
Ответ 2
Чтобы отключить клавиатуру, вы можете использовать TextField Delegate.
Чтобы использовать это, выполните следующие действия...
1. В поле viewController. h добавьте объявление делегата следующим образом:
@interface ViewController : UIViewController <UITextFieldDelegate>
{
}
2. В вашем viewController. m
вызовите этот метод: - (BOOL)textFieldShouldReturn:(UITextField *)textField
3. Затем напишите такой код: - (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
4. Заключительный шаг - установить делегат textField: - (void)viewDidLoad {
[super viewDidLoad];
self.textField.delegate = self;
}
Ответ 3
- (BOOL)textFieldShouldReturn:(UITextField *)textField
в вашем делегате вызывается при нажатии кнопки возврата.
Вы хотите вызвать [textField resignFirstResponder]
, а затем вернуть YES
. Это должно делать свое дело. Также убедитесь, что делегат установлен. Если есть сомнения, добавьте точку останова или NSLog
и проверьте.