Я пытаюсь использовать настраиваемую клавиатуру в своем приложении, но я сталкиваюсь с проблемами при попытке ограничить ее одним конкретным UITextField.Как узнать, что UITextField вызвало UIKeyboardWillShowNotification?
Я основывал свой код на this Xcode project (первоначально был найден на this blog). Этот код добавляет пользовательский UIButton (представляющий «десятичную точку») в представление клавиатуры UIKeyboardTypeNumberPad. Он делает это, подписываясь на UIKeyboardWillShowNotification и изменяя клавиатуру, когда она появляется.
Этот проект Xcode отлично работает, но когда я добавляю дополнительный UITextField, пользовательский ключ также вводится в клавиатуру для этого текстового поля, хотя я выбрал для этого текстового поля совершенно другой тип клавиатуры.
Я попытался зарегистрироваться, чтобы увидеть только UIKeyboardWillShowNotification уведомления от одного конкретного UITextField, но это не похоже на работу:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:exampleViewController.textField];
Я также попытался осмотреть объект внутри NSNotification передается keyboardWillShow, но к сожалению, это относится к клавиатуре, а не к интерфейсу пользовательского интерфейса, из-за которого клавиатура появляется.
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};
}}
ли я недопонимание интерфейс addObserver? Наверняка должен быть способ подписаться на уведомления из определенного элемента управления пользовательского интерфейса?
Есть ли у кого-нибудь другие предложения о том, как этого достичь?
Я специально установить другой UITextField использовать разные типы клавиатуры. К сожалению, код «пользовательской клавиатуры» изменяет любую клавиатуру, которая появляется, и я не могу понять, как отличить, какой UITextField вызвал уведомление UIKeyboardWillShowNotification. Я обновил сообщение, чтобы уточнить, что немного больше. –