Доступ к объектам в одном файле пера из другого файла пера - PullRequest
1 голос
/ 18 июня 2010

У меня есть два файла пера - Main.nib и Preference.nib В файле Main.nib У меня есть экземпляр класса NSView.Его окно имеет NSPopUpButton, которое при нажатии показывает меню.В меню у меня есть пункт меню «Настройки».При нажатии на пункт меню отображается панель настроек, содержащая цветную ячейку.При щелчке по цвету отображается цветная панель для выбора цвета.Проблема заключается в том, как применить этот цвет к главному окну приложения.

Окно моей панели предпочтений находится в файле Preference.nib.Таким образом, проблема заключается в доступе к NSView из другого окна пера.

Есть ли способ установить соединение между панелью настроек и главным окном приложения (NSView)

1 Ответ

2 голосов
/ 18 июня 2010

Вы думаете об этом не на том уровне. NSView и NSWindow являются объектами представления в шаблоне Model-View-Controller и не должны использоваться для хранения данных приложения. Цвет, выбранный на панели предпочтений, является данными приложения и должен храниться в соответствующем объекте модели.

Вы можете, например, использовать привязки для точного связывания цвета с объектом NSUserDefaultsController для хранения этих данных (при условии, что это настройка для всего приложения). Вы не сказали точно, для чего используется цвет в главном окне, но если объект, который его использует, распознает привязки, вы можете привязать этот объект к тому же значению на NSUserDefaultsController и все готово.

В противном случае вы можете ответить на сообщение о действии цветовой ямы, чтобы сохранить цвет в соответствующем месте, а затем отправить уведомление, используя NSNotificationCenter, чтобы сообщить другим объектам, что цвет изменился. Вам нужно будет зарегистрировать любой объект, который необходимо предпринять, когда значение изменится для вашего уведомления.

Вот некоторые ресурсы:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...