Захват ключ Нажмите событие с использованием NsnotificationCenter
-
27-09-2019 - |
Вопрос
Это решениеПолучить события клавиатуры iPhone
Предлагает способ захватить событие KeyPress с помощью центра уведомлений.
[NsnotificationCenter defaultcenter] Addobserver: Self Selector: @selector (имя KeyPressed :): uextfieldtextddidchangeenotification Объект: nil];
[NsnotificationCenter DefaultCenter] Addobserver: Self Selector: @selector (имя KeyWressed :): ueTxtviewtextddidchenceenotification объект: nil];
........
- (void) keyпреded: (nsnotification *) Уведомление {NSLog ([[Объект уведомления] текст]); }
Он работает нормально, но для каждого ключа, который был нажимается из клавиатуры, функция клавиш вызывается 3 раза.
Это нормально или я делаю что-то не так?
Teo.
Решение
Уведомление должно отображаться только один раз на нажатую ключей. По крайней мере, это то, что я получаю при тестировании. Единственное, что я могу думать, это то, что вы звоните addObserver:selector:name:object:
три раза.
Возможно, вы делаете это в нескольких контроллерах просмотра и забудьте позвонить removeObserver:name:object:
?
Или вы звоните addObserver:selector:name:object:
В функции, которая вызывается несколько раз? viewDidLoad
Обычно это хорошее место, чтобы поставить код такой.