Проблема с получением stringValue из NSSecureTextField

У меня есть поле пароля типа NSSecureTextField, скажем, passwordField и NSButton. Я назначил клавишу возврата в качестве эквивалента клавиши для запуска действия кнопки. После нажатия кнопки я получаю введенный пользователем текст как [passwordField stringValue], это даст правильное значение только тогда, когда пользователь нажимает клавишу возврата после ввода своего пароля, но не когда пользователь нажимает кнопку с помощью мыши. В последнем случае это даст нулевое значение. Я изо всех сил пытался найти проблему, но бесполезно. Если кто-нибудь знает, что происходит не так, пожалуйста, помогите мне.

С уважением, ЮПК

EDIT: Это наблюдается только в 10.5 и отлично работает в 10.6.


person YPK    schedule 05.07.2011    source источник


Ответы (3)


Попробуйте установить флажок Continuous в текстовом поле в Interface Builder. Также убедитесь, что для параметра Действие установлено значение Отправить после редактирования.

настройки ib

person spudwaffle    schedule 05.07.2011
comment
Спасибо за ответ. Хотя я изменил состояние на Continuous бесполезно. С самого начала отправляется только действие по окончанию редактирования. - person YPK; 06.07.2011

У меня была похожая проблема. Для меня оказалось, что фокус не правильно установлен на текстовом поле. Вызов [window makeFirstResponder: textfield] после тайм-аута в 0,5 секунды решил эту проблему.

person codingFriend1    schedule 26.01.2013
comment
Оно работает! если NSSecureTextField не имеет фокуса, всегда возвращает неправильную строку - person Kappe; 29.01.2014

Обычно я явно вызываю [window makeFirstResponder:nil в качестве одной из первых строк в событиях нажатия кнопки, чтобы обеспечить вызов события Sent On End Editing.

person Peter Theill    schedule 28.06.2016