Захват ключ Нажмите событие с использованием NsnotificationCenter

StackOverflow https://stackoverflow.com/questions/4254490

Вопрос

Это решениеПолучить события клавиатуры 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 Обычно это хорошее место, чтобы поставить код такой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top