2013-06-30 4 views
1

Поскольку ни цифровая клавиатура, ни клавиатура телефона, входящая в iOS, не включают ключ возврата (следующий или завершенный), как можно определить конец ввода числовой записи переменной длины?iOS обнаружение конца ввода числового поля

Использование полной альфа-клавиатуры - одна из возможностей, так как она включает в себя цифровой набор клавиш. Но это означает предоставление пользователю дополнительных возможностей, которые необходимо отредактировать.

Другая возможность - потребовать отбор в другом поле ввода данных. Это кажется неинтуитивным и невозможным, если есть только одно числовое поле для захвата!

Есть ли решение?

+2

Добавить 'inputAccessoryView' в' UITextField'. Это представление может иметь любые кнопки (или другие элементы пользовательского интерфейса), которые вы хотите. Общим набором кнопок являются кнопки «Next/Previous» и кнопка «Готово». – rmaddy

ответ

1

Да, вы можете обнаружить кран с помощью UITapRecognizer и смещать клавиатуру, когда определенный вид сливают с помощью

[UITextField resignFirstResponder]; 
2

Один быстрый способ это просто добавить UITapGestureRecognizer к виду за клавиатурой, которая может отклонить клавиатура при постукивании, как так

// UITapGestureRecognizer property 
@property (strong, nonatomic) UITapGestureRecognizer *singleTap; 

// Add gesture recognizer to remove keyboard 
_singleTap = [[UITapGestureRecognizer alloc] 
           initWithTarget:self 
           action:@selector(dismissKeyboard)]; 
_singleTap.cancelsTouchesInView = NO; 
[self.view addGestureRecognizer:_singleTap]; 

// Method to remove keyboard 
- (void)dismissKeyboard 
{ 
    [self.view endEditing:YES]; 
} 

Еще бы добавить либо кнопку Готово для самой цифровой клавиатуры или с помощью inputAccessoryView, как показано здесь http://timbroder.com/2012/08/adding-done-and-cancel-buttons-to-an-ios-number-pad.html

1

Если вы ввода в UITextField я имел успех, добавив файл заголовка в UITextFieldDelegate к моему ViewController, а затем использовать это в моем viewcontroller.m

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
[self.view endEditing:YES]; 
}