Очистка подклассов NSDocument

Мне нужно выполнить некоторые операции очистки в моем подклассе NSDocument, когда документы закрыты.

В текущей реализации, имеющей этот код очистки в canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo:, он вызывается только тогда, когда в документе есть несохраненные изменения.

Даже метод close не выглядит подходящим - согласно docs Этот метод не всегда может быть вызван.

Есть ли место для размещения такого кода, который всегда вызывается перед уничтожением NSDocument экземпляра ..?

Есть несколько действительно интересных диаграмм потоков сообщений. для инициализации, открытия и сохранения NSDocuments в документы - увы, нет для закрытия документов или выхода из приложения ?!


person Jay    schedule 21.01.2014    source источник


Ответы (1)


Ваш NSDocument живет в окне.

Почему бы не установить какой-либо объект (например, ваш подкласс NSDocument объект) в качестве делегата для NSWindow, в котором размещен документ, а затем перехватить " _ 1_ "уведомление?

person Michael Dautermann    schedule 21.01.2014
comment
Я мог придумать дюжину обходных путей - однако мне было интересно, какой официальный, поддерживаемый способ в классе NSDocument ... в структуре приложения, которая существует уже несколько десятилетий, которая, несомненно, имеет встроенную поддержку для такого базового варианта использования :-) - person Jay; 22.01.2014