2013-01-24 31 views

Odpowiedz

30

Musisz być przyjść delegata polu tekstowym i wdrożenia tej metody opcjonalne delegata:

- (void)textFieldDidBeginEditing:(UITextField *)textField; 
11

Oprócz realizacji sposobu textFieldDidBeginEditing:UITextFieldDelegate można rejestrować zgłoszenia UITextFieldTextDidBeginEditingNotification.

Sposób powiadamiania mogą być:

- (void)someTextFieldDidBeginEditing:(NSNotification *)notification { 
    UITextField *textField = (UITextField *)notification.object; 
} 
0

Na OSX powinien zdawać sobie sprawę z przyciskami o skutki uboczne, gdy opierając się na NSControlTextDidBeginEditingNotification.

Po rozpoczęciu edycji, naciśnięciu niektórych przycisków i wznowieniu edycji pola tekstowego, nie można uzyskać sekundy NSControlTextDidBeginEditingNotification po wznowieniu edycji.

Jeśli to zachowanie powoduje problem, alternatywą może być UITextFieldTextDidChangeNotification.

2

Delegat to zdecydowanie najlepsza droga. Niestety w mojej sytuacji nie mogłem tego użyć, ponieważ kontroler był delegatem mojej podklasy UITextField i musiałem zmodyfikować tekst zastępczy. Zamiast tego nadpisuję metody - (BOOL)canBecomeFirstResponder; . Pamiętaj, aby zadzwonić super.

+0

Tak, twój komentarz, aby pamiętać, aby zadzwonić super rozwiązać mój problem. –

Powiązane problemy