Закрытие определенного экземпляра NSDocument с уведомлениями

У меня есть следующая проблема. Я пытаюсь воспроизвести рабочий процесс «нового проекта», подобный XCode, в небольшой IDE, которую я создаю. Для этого у меня есть лист, который запускается модально в окне, созданном контроллером окна документа, когда пользователь выбирает «Новый проект». Лист запускается из пера и загружает несколько подпредставлений (через контроллеры представления) в пошаговом подходе, чтобы настроить проект (тип -> параметры... и т. д.) до точки сохранения нового проекта. Все идет нормально.

У меня проблема, когда я пытаюсь отменить процесс ПЕРЕД сохранением. Я не могу понять, как закрыть модальный лист и экземпляр документа БЕЗ закрытия других экземпляров документа (также известных как «проекты»), которые могут быть открыты.

В моем приложении есть делегат, класс NSDocument, который управляется через NSWindowController и несколько других контроллеров и перьев. На данный момент я думаю о реализации подхода на основе уведомлений в делегате приложения, но не могу понять.

Я был бы признателен, если бы вы могли указать мне в правильном направлении.

С теплыми пожеланиями,

Том


person Tom    schedule 06.07.2011    source источник


Ответы (1)


Вы также можете вызвать метод действия при нажатии кнопки отмены. Таким образом, методу действия удается закрыть лист и закрыть экземпляр подкласса NSDocument.

person Community    schedule 06.07.2011
comment
Привет, Винс. Спасибо за Ваш ответ. У меня есть метод действия. Но кнопка находится в подвиде листа (загружается динамически). Поскольку лист является модальным, я не могу зафиксировать действие иначе, чем в этом подразделе. Таким образом, я пытаюсь найти способ связать это действие с фактическим методом закрытия документа, только для экземпляра с отображаемым модальным листом. - person Tom; 07.07.2011
comment
Попробуйте использовать setAction:(SEL)anAction вашего NSControl. Также установите цель на ноль, чтобы сообщение о действии проходило через цепочку респондента. - person ; 07.07.2011
comment
Привет, Винс. Спасибо за подсказку. Я попытаюсь. - person Tom; 07.07.2011
comment
Привет, да, это работает. Я совсем-совсем забыл про sendAction: to: from: и цепочку респондеров. Что сделало мой день. Спасибо за помощь. С наилучшими пожеланиями, Том - person Tom; 08.07.2011
comment
Извините, что не ответил раньше. Но я баловался книгой Кочана. Такая волшебная лекция! - person Tom; 08.07.2011