Próbuję użyć niestandardowej klawiatury w mojej aplikacji, ale napotykam problemy, gdy próbuję ograniczyć ją do jednego konkretnego UITextField.Jak dowiedzieć się, co UITextField spowodowało UIKeyboardWillShowNotification?
Oparłem swój kod na this Xcode project (pierwotnie znaleziony na this blog). Ten kod dodaje niestandardowy UIButton (oznaczający "kropkę dziesiętną") do widoku klawiatury UIKeyboardTypeNumberPad. Robi to, subskrybując UIKeyboardWillShowNotification i modyfikując klawiaturę, gdy się pojawi.
Ten projekt Xcode działa świetnie, ale kiedy dodaję dodatkowy UITextField, klucz niestandardowy zostanie umieszczony na klawiaturze również dla tego pola tekstowego, mimo że wybrałem zupełnie inny typ klawiatury dla tego pola tekstowego.
Próbowałem się zarejestrować, aby tylko zobaczyć informację UIKeyboardWillShowNotification od jednej konkretnej UITextField, ale to nie wydają się działać:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:exampleViewController.textField];
Próbowałem też skontrolować obiekt wewnątrz NSNotification przekazane keyboardWillShow, ale niestety odnosi się to do klawiatury, a nie kontrolki interfejsu użytkownika, która spowodowała pojawienie się klawiatury.
2009-10-21 19:50:22.205 Example[6302:207] NSConcreteNotification 0x321ebd0 {name = UIKeyboardWillShowNotification; userInfo = {
UIKeyboardAnimationCurveUserInfoKey = 0;
UIKeyboardAnimationDurationUserInfoKey = 0.300000011920929;
UIKeyboardBoundsUserInfoKey = NSRect: {{0, 0}, {320, 216}};
UIKeyboardCenterBeginUserInfoKey = NSPoint: {160, 588};
UIKeyboardCenterEndUserInfoKey = NSPoint: {160, 372};
}}
jestem nieporozumienie interfejs addObserver? Z pewnością musi istnieć sposób na subskrypcję powiadomień z konkretnego kontrolera interfejsu użytkownika?
Czy ktoś ma jakieś inne sugestie, jak to osiągnąć?
I specjalnie ustawić inną UITextField używać różnych rodzajów klawiatury. Niestety, kod klawiatury użytkownika modyfikuje klawiaturę, która się pojawia, i nie wiem, jak odróżnić UITextField od zgłoszenia powiadomienia UIKeyboardWillShowNotification. Zaktualizowałem post, aby wyjaśnić, że trochę więcej. –