Подтвердить что ты не робот

Как заставить клавиатуру уйти в симуляторе iphone

У меня есть одно текстовое поле в моем приложении iphone, когда вы касаетесь его в симуляторе, клавиатура появляется. Но нет способа избавиться от него. Другие веб-страницы дают решения, не объясняя, почему они должны работать, и они не работают для меня. Говорят, что текстовое поле делегирует ваш uiview, а затем вызывает resignfirstresponder на объекте, но он никогда не вызывается. Какие-либо предложения? Может ли кто-нибудь объяснить, что на самом деле происходит? Я могу понять это сам, если бы знал, что такое парадигма дизайна...

Возможно, мне нужно просто поместить кнопку "пойти", чтобы у меня было что-то, чтобы отвлечь фокус от текстового поля?

4b9b3361

Ответ 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 и проверьте.