Привязка NSPredicateEditor к контроллеру общих пользователей по умолчанию - PullRequest
2 голосов
/ 07 марта 2011

У меня есть NSPredicateEditor, который является частью панели настроек для инструмента, который я создаю.

Я хотел бы сохранить выбранные пользователем настройки так же, как и любой другой элемент в объекте NSUserDefaults, но когда я добавляю привязку к объекту NSPredicateEditor и запускаю инструмент, он не будет сохранять данные и, кроме того, вызывает другие значения по умолчанию. не показывать. Когда я убираю привязку и перекомпилирую, все остальное возвращается.

Каков наилучший способ сохранить данные NSPredicatedEditor как пользовательские настройки?

Спасибо.

1 Ответ

2 голосов
/ 07 марта 2011

Всякий раз, когда изменяется пользовательский интерфейс NSPredicateEditor, эти изменения немедленно отражаются в objectValue редактора (т. Е. Представленном NSPredicate). Таким образом, вы можете просто взять этот предикат и заархивировать его, используя NSKeyedArchiver. Это эффективно превратит предикат в объект NSData, который можно сохранить в NSUserDefaults.

Чтобы прочитать его обратно, просто возьмите объект NSData, пропустите его через NSKeyedUnarchiver и setObjectValue: в редакторе предикатов.

Вы можете , вероятно, выполнить это через привязки, хотя я никогда не пробовал. Вы можете привязать value NSPredicateEditor к чему-либо, что поставляет NSPredicate (или NSPredicate в NSData форме). Возможно, вам также понадобится указать, что преобразователь значения - это NSKeyedUnarchiveFromData.

...