Флаг грязных данных ядра не устанавливается - PullRequest
0 голосов
/ 18 марта 2011

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

По какой-то причине, если я внесу изменения в любое из моих полей, меню / окно, кажется, не распознает его - т.е.красная кнопка закрытия не отображает черный индикатор «грязный», а пункт меню «Файл / Сохранить» не включен.Однако, если я пытаюсь закрыть приложение (с помощью команды Q), я получаю всплывающее окно, спрашивающее меня, хочу ли я сохранить свои изменения.

Кажется, что установлен флаг грязного документа, нопункты окна / меню не реагируют на это.Мне любопытно, куда я мог бы посмотреть, почему это может иметь место.Я подозреваю, что это может иметь какое-то отношение к моему окну, не зная о моем ManagedObjectContext ...

Единственное немного нетипичное поведение заключается в том, что метод makeWindowControllers моего документа был переопределен, и я добавляю свои контроллеры окна, используя вызовк методу [self addWindowController: xxx] моего документа.Мой подкласс контроллеров окон из NSWindowController, поэтому мне пришлось добавить собственную переменную экземпляра в каждый оконный контроллер для хранения ManagedObjectContext, но я подозреваю, что это не передается окну / меню.Не уверен, что здесь нормальная картина ...

В любом случае, любые мысли будут высоко оценены.Спасибо

Ответы [ 2 ]

1 голос
/ 18 марта 2011

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

0 голосов
/ 19 марта 2011

Частично спасибо TechZen, а также перечитал мой собственный вопрос (в частности, где я сказал: « Я подозреваю, что это может быть связано с моим окном, не зная о моем ManagedObjectContext »)Я начал смотреть привязки для моего подкласса WindowController.

Как оказалось, я не привязывал выход window для владельца файла к своему фактическомуNSWindow.Как только я это сделал, черная грязная точка и меню окна начали работать правильно.

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