Как определить нажатие кнопки возврата на UIKeyboard
?
Благодарность
РЕДАКТИРОВАТЬ: есть ли какой-либо делегат клавиатуры, который возвращает значение нажатия клавиши?
Как определить нажатие кнопки возврата на UIKeyboard
?
Благодарность
РЕДАКТИРОВАТЬ: есть ли какой-либо делегат клавиатуры, который возвращает значение нажатия клавиши?
если UITextField пуст, метод делегата shouldChangeTextInRange не вызывается. Вы можете создать подкласс UITextField и переопределить этот метод:
-(void)deleteBackward;
{
[super deleteBackward];
NSLog(@"BackSpace Detected");
}
поскольку UITextField совместим с протоколом UITextInput, этот метод реализован, и вы можете переопределить его, чтобы определять, когда нажата клавиша Backspace. Затем вы можете написать свой собственный метод протокола / делегата, чтобы предупреждать своего делегата настраиваемого текстового поля, если обнаружено обратное пространство.
Прежде всего ваш UIViewController
, который ссылается на UITextField
, должен соответствовать UITextFieldDelegate
protocol
. Затем установите свой класс как delegate
на UITextField
(например, [myTextField setDelegate:self]
). Затем в своем классе вы добавляете следующее. Когда строка "" отправляется как replacementString
, вы знаете, что это backspace.
(BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
{
if ([string isEqualToString:@""]) {
NSLog(@"Backspace");
}
return YES;
}
Временно я вставляю символ с нулевым пробелом на textFieldDidBeginEditing
textField.text = @"\u200B";
на backspace он удаляет эти символы, но графически это то же самое!
Это хакер, он работает, но скрывает текст-заполнитель ... нехорошо ...