Я хочу обнаружить, когда пользователь нажимает любую клавишу клавиатуры.
Любой метод, который вызывается только при вводе любого символа, а не при отображении клавиатуры.
Спасибо!!
Я хочу обнаружить, когда пользователь нажимает любую клавишу клавиатуры.
Любой метод, который вызывается только при вводе любого символа, а не при отображении клавиатуры.
Спасибо!!
Вы можете напрямую обрабатывать события клавиатуры каждый раз, когда пользователь нажимает клавишу:
В случае UITextField
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string {
// Do something here...
}
В случае UITextView:
- (BOOL)textView:(UITextView *)textView
shouldChangeTextInRange:(NSRange)range
replacementText:(NSString *)text {
// Do something here...
}
Поэтому каждый раз один из этих методов вызывается для каждой клавиши, которую вы нажимаете с помощью клавиатуры.
Вы также можете использовать NSNotificationCenter. Вам нужно только добавить любой из них в метод ViewDidLoad.
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
UITextField:
[notificationCenter addObserver:self
selector:@selector(textFieldText:)
name:UITextFieldTextDidChangeNotification
object:yourtextfield];
Затем вы можете поместить свой код в метод textFieldText:
:
- (void)textFieldText:(id)notification {
// Do something here...
}
UITextView
[notificationCenter addObserver:self
selector:@selector(textViewText:)
name:UITextViewTextDidChangeNotification
object:yourtextView];
Затем вы можете поместить свой код в метод textViewText:
:
- (void)textViewText:(id)notification {
// Do something here...
}
Надеюсь, что это поможет.
Предполагая, что клавиатура отображается в результате нажатия пользователем на поле UIText, вы можете сделать себя делегатом и реализовать этот метод:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
Он будет вызываться каждый раз, когда пользователь нажимает клавишу.