UITextField - resignFirstResponder Запрос - PullRequest
1 голос
/ 02 августа 2011

У меня есть приложение, в котором есть пара UITextField, чтобы мой пользователь мог указать свой возраст, и другое числовое значение.В идеале я хочу, чтобы клавиатура отображала цифровую клавиатуру при редактировании TextField.В настоящее время я установил Numer и Punctuation просто для того, чтобы использовать кнопку «Готово», чтобы закрыть клавиатуру, поскольку на цифровой панели нет кнопки «Готово».

При попытке использовать цифровую клавиатуру,Я попытался отключить его, коснувшись фона моего основного вида.

-(IBAction)backgroundTapped:(id)sender;

Я создал вышеупомянутое действие в своем заголовочном файле.

-(IBAction)backgroundTapped:(id)sender {
    [ageEntry resignFirstResponder];
}

Я расширил описанный выше метод в своем файле реализации, чтобы сообщить ageEntry TextField для resignFirstResponder.Я также изменил свой основной вид на класс UIControl и подключил действие buttonTapped к соответствующему предупреждению через Interface Builder.Но когда я касаюсь фона, ничего не происходит.

Есть идеи?

Ответы [ 3 ]

1 голос
/ 02 августа 2011

Просто определите касание в представлении вашего viewController, используя метод

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [urAgeField resignFirstResponder];
    [urOtherField resignFirstResponder];
}

и переназначьте клавиатуру этим методом

1 голос
/ 02 августа 2011

Гораздо более простой способ - добавить inputAccessoryView в текстовое поле. Это вспомогательное представление ввода может быть UIToolbar с одной UITabBarButton для вашей кнопки Готово .

Гораздо меньше взлома, и будет выглядеть как вспомогательный вид, который используется, например, в Safari для отклонения клавиатуры.

0 голосов
/ 02 августа 2011

У меня была похожая проблема. вот решение ..

EDITED

добавить

- (void)viewDidLoad 
{
        [super viewDidLoad];
         UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTarget:self
                                                                    action:@selector(tap:)];
        tap.numberOfTapsRequired = 1;

        [self addGestureRecognizer:tap];


}

- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
   [ageEntry resignFirstResponder];            
}
...