Chcę wykryć, gdy użytkownik naciśnie dowolny klawisz klawiatury.Jak wykryć klawisz klawiatury wciśnięty w iphone?
Dowolna metoda, która jest wywoływana tylko podczas wpisywania dowolnego znaku, a nie po wyświetleniu klawiatury.
Dzięki!
Chcę wykryć, gdy użytkownik naciśnie dowolny klawisz klawiatury.Jak wykryć klawisz klawiatury wciśnięty w iphone?
Dowolna metoda, która jest wywoływana tylko podczas wpisywania dowolnego znaku, a nie po wyświetleniu klawiatury.
Dzięki!
można bezpośrednio obsługiwać zdarzenia klawiatury każdym czasie użytkownik naciśnie klawisz:
W przypadku UITextField
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string {
// Do something here...
}
In Case of UITextView:
- (BOOL)textView:(UITextView *)textView
shouldChangeTextInRange:(NSRange)range
replacementText:(NSString *)text {
// Do something here...
}
Więc za każdym razem jedna z tych metod jest wywoływana dla każdego klawisza, który naciskasz przy użyciu klawiatury.
Możesz również użyć NSNotificationCenter. Trzeba tylko dodać dowolne z nich w metodzie ViewDidLoad.
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
UITextField:
[notificationCenter addObserver:self
selector:@selector(textFieldText:)
name:UITextFieldTextDidChangeNotification
object:yourtextfield];
Następnie można umieścić swój kod w metodzie textFieldText:
:
- (void)textFieldText:(id)notification {
// Do something here...
}
UITextView
[notificationCenter addObserver:self
selector:@selector(textViewText:)
name:UITextViewTextDidChangeNotification
object:yourtextView];
Następnie można umieścić swój kod w metodzie textViewText:
:
- (void)textViewText:(id)notification {
// Do something here...
}
Nadzieję, że to pomaga.
Jeśli mam UITextView i naciskam klawisz ReturnKey, metoda textViewDidChange również zostanie wywołana. Czy istnieje sposób rozpoznania, który klawisz został naciśnięty na klawiaturze? –
Co na temat naciśnięć klawiszy w UIWebView? –
Uwaga: shouldChangeTextInRange: nie jest wywoływana, jeśli pole tekstowe jest puste i naciśnięty klawisz Delete. Pole tekstowe zdaje się wykrywać, że pole nie uległo zmianie, więc metoda delegata nie musi zostać zwolniona =/ – Zhang
Zakładając, że klawiatura jest wyświetlana w wyniku użytkownika spustowej na UITextField, można zrobić sobie delegata i wdrożenie tej metody:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
To będzie wywoływana za każdym razem, gdy użytkownik naciśnie klawisz.
będzie to wywoływać za każdym razem, ale jeśli użytkownik wyczyści cały tekst, nie będzie to nazywane –
Jeśli pole tekstowe jest puste i naciśnij klawisz spacji, to nie jest wywoływane. – Ramakrishna
Mam dla ciebie pytanie, jak użytkownik może wpisać cokolwiek, jeśli klawiatura nie jest wyświetlana? –
Dobra odpowiedź tutaj. http://stackoverflow.com/questions/5216245/how-to-handle-key-events-in-iphone – Dilip
Czy używasz textfield? wyboru [to] [1] [1]: http://stackoverflow.com/questions/7010547/uitextfield-text-change-event –