2014-01-24 3 views
2

Я создал диалоговое окно с NSTextField и NSSecureTextField (для имени пользователя и пароля) вместе с NSButton для отправки. Выходы правильно подключены в Interface Builder (не нуль).NSTextField stringValue не обновляется при нажатии кнопки

Я извлекаю stringValue полей имени пользователя и пароля в обработчике действия для кнопки. Однако:

  • Если я ввожу символ в поле пароля и нажимаю кнопку, его stringValue пуст.
  • Если я вводил символ в поле пароля ('a'), измените фокус на поле имени пользователя, смените фокус на поле пароля и введите второй символ ('b'), пароли stringValue - это 'a ', а не' ab '.

Строка Значение поля пароля (а также поля имени пользователя) не обновляет их значение в фокусе. Я попробовал следующий исправить эту проблему, но безрезультатно:

  • Установите Действие текстового поля на «Sent дыбом Редактирование»
  • установленного состояния текстового поля для непрерывного
  • Called validateEditing по тексту поле в фокусе
  • Вызывается resignFirstResponder на текстовое поле в фокусе
  • Вызывается [self.window makeFirstResponder: self.window]
  • Вызывается endEditingFor: на окно с текстовым полем в качестве аргумента (или ноль)

ответ

3

Я нашел решение своей проблемы. Я отключил UITextField, прежде чем запрашивать его значение. По какой-то причине, если я запрашиваю значение перед его отключением, значение будет правильным.

Обновление: Документация для метода UIControl setEnabled: указывает, что если его аргумент НЕТ, «любое редактирование прерывается».

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