NSTextField stringValue не обновляется при нажатии кнопки

Я создал диалоговое окно с NSTextField и NSSecureTextField (для имени пользователя и пароля), а также NSButton для отправки. Розетки правильно подключены в Интерфейсном Разработчике (не ноль).

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

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

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

  • Установите для действия текстового поля значение "Отправлено при завершении редактирования"
  • Установите для состояния текстового поля значение Continuous
  • Вызывается validateEditing в текстовом поле в фокусе
  • Вызывается resignFirstResponder для текстового поля в фокусе
  • Вызывается [self.window makeFirstResponder: self.window]
  • Вызывается endEditingFor: в окне с текстовым полем в качестве аргумента (или ноль)

1 ответ

Решение

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

Обновление: документация для UIControl setEnabled: метод утверждает, что если его аргумент НЕТ, "любое редактирование отменяется".

Другие вопросы по тегам