Вопрос

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

Может быть, мне просто стоит поставить кнопку «Перейти», чтобы у меня было что-то, что могло бы отвлечь фокус от текстового поля?

Это было полезно?

Решение

Один из способов сделать это — установить объект в качестве делегата текстового поля и реализовать

- (BOOL)textFieldShouldReturn:(UITextField *)textField

в который ты звонишь [textField resignFirstResponder]

Это приведет к исчезновению клавиатуры, когда они нажмут кнопку «Возврат/Перейти/Готово» (независимо от того, что вы установите для нижней правой клавиши клавиатуры).

См. UITextFieldDelegate ссылка для получения дополнительной информации.

Другие советы

Для отклонения клавиатуры вы можете использовать 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;
    }

- (BOOL) textFieldShouldReturn: (UITextField *) textField в вашем делегате вызывается при нажатии кнопки возврата.

Вы хотите вызвать [textField resignFirstResponder] , а затем вернуть YES . Это должно делать свое дело. Также убедитесь, что делегат установлен. Если сомневаетесь, добавьте точку останова или NSLog и подтвердите.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top