2013-05-22 3 views
4

Init раздел:UIKeyboardWillShowNotification не работает с прошивкой> 6,1

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) 
               name:UIKeyboardWillShowNotification object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) 
               name:UIKeyboardWillHideNotification object:nil]; 

Некоторые метод:

- (void) keyboardWillShow:(NSNotification*) aNotification { 
// TO DO 
} 

Dealloc раздел:

[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil]; 
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil]; 

Так keyboardWillShow не вызывается после представления с в прошивкой 6.1 ... В iOS 6.0 этот код работает отлично.

+0

Есть ли у вас только эта проблема на iPad или проблема существует на iPhone и iPod touch? – rmaddy

+0

Мой код в точности похож на ваш, за исключением dealloc, я его не использую. Не могли бы вы разместить еще несколько кодов? – jturolla

+0

Он отлично работает для меня, я использую его все время. Работает как на iPad, так и на iPhone и на iOS 6.1.x, а также на iOS 6.0 ... (хотя я не удаляю наблюдателя в любой момент и большую часть времени, я оставляю целевой метод без параметров или использую (id)) – Toastor

ответ

2

В каком разделе «init section» добавляются наблюдатели? Например, если ваш контроллер просмотра находится из раскадровки, то он должен быть в - (id)initWithCoder:(NSCoder *)decoder.

Моя рекомендация состоит в том, чтобы установить наблюдателей в viewWillAppear и удалить их в viewWillDisappear. Таким образом, настройка и срыв «сбалансированы» и только активны, когда содержимое контроллера просмотра видимо.

Смежные вопросы