Проблема с сохранением данных с помощью привязок и общих NSUserDefaults в IB - PullRequest
2 голосов
/ 17 марта 2010

У меня странная проблема, которую я не могу понять. Я в некотором роде NBB для Interface Builder. То, что я пытаюсь сделать, похоже, должно быть простым, но по какой-то причине это не работает.

В конструкторе интерфейсов у меня есть окно настроек с простым NSTextField. Я установил привязку значений к Shared User Defaults Controller с помощью ключа контроллера «values» и ключа модели «test». Я создаю / запускаю приложение и открываю окно настроек, набираю случайное значение в текстовое поле, закрываю окно. Command-Q приложение. Затем в оболочке я делаю «чтение по умолчанию com.xxx.yyy» для моего приложения, а ключ и значение нигде не найдены. При этом, похоже, что в следующий раз я запустлю приложение и изменим значение, которое оно работает, но только если я отключу фокус от NSTextField перед закрытием окна.

В документации к NSUserDefaults говорится, что совместно используемый контроллер сохраняет значения немедленно, я что-то упускаю из этой ситуации?

Спасибо за любую помощь.

1 Ответ

8 голосов
/ 09 марта 2011

Я отвечаю на это долгое время после того, как его спросили, если другие посчитают его полезным.

Похоже, вам нужно установить «Постоянно обновляет значения» для текстового поля, которое вы привязали. В противном случае значение отправляется только и, соответственно, настройки обновляются только тогда, когда происходит «завершение» редактирования. Обычно это срабатывает при нажатии Return, и, вероятно, также происходит, когда вы переключаете фокус с окна (хотя я только что проверил это в одном из моих собственных приложений, и, похоже, он не выполнял редактирование).

...