iOS - NSNotificationCenter несколько уведомлений UIKeyboard - PullRequest
2 голосов
/ 04 февраля 2011

У меня есть два контроллера представления, назовем их A и B

(1) в AI покажем popOver, содержащий textField
(2) в B есть UITextView, используемый для простого редактирования текста

Мне нужно управлять клавиатурой в A и B, чтобы прокручивать содержимое, скрытое клавиатурой.Я знаю, как изменить содержание.То, что мне нужно, это способ по-разному вести себя на тех же типах уведомлений, что и в моем UIKeyboardWill (Показать / Скрыть) Уведомление.
Что я сделал до сих пор:
(1) Я добавил этот кодв каждом контроллере

<code>
    [[NSNotificationCenter defaultCenter] addObserver:self
                                  selector:@selector(keyboardDidAppear:)
                                      name:UIKeyboardWillShowNotification
                                    object:self.view.window
, как я уже сказал, я добавил этот код в A и B, но не работает, как я ожидал.Например, когда я щелкаю внутри textView, запускаются два метода: keyboardDidAppear из A и keyboardDidAppear из B, то же самое происходит с UIKeyboardWillHideNotification.Я уверен, что я делаю что-то не так, но, честно говоря, я не могу понять это.

Ответы [ 2 ]

3 голосов
/ 25 февраля 2011

Я решил эту проблему, изменив место, в котором я регистрируюсь для уведомления. Чтобы убедиться, что виден только viewController, это контроллер, который получает уведомление, которое я регистрирую для уведомления в vieWillAppear, и удаляет уведомление в viewWillDisappear.

0 голосов
/ 06 марта 2013

Ваш синтаксис тоже немного запутан, вам нужно добавить селектор слов после @ ...

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(keyboardDidAppear:)
                                                 name:UIKeyboardWillShowNotification
                                               object:self.view.window];
...