Я работаю над приложением на основе NSDocument с несколькими документами на окно (вкладки). Это означает, что мне нужно самостоятельно обработать закрытие окон, чтобы я мог просмотреть документы, принадлежащие окну, прежде чем оно закроется. Чтобы сделать это, я получил доступ к кнопке закрытия NSWindow с помощью standardWindowButton:NSWindowCloseButton
и установил цель / действие этой кнопки для моего метода вместо стандартного (и частного) _close:
метода.
Это прекрасно работает на Lion, но на Snow Leopard это вызывает проблемы. Всякий раз, когда отображается модальное диалоговое окно, кнопка закрытия отключается, как и ожидалось. Но когда модальное диалоговое окно закрывается, на Snow Leopard кнопка закрытия никогда не включается. После этого я попытался включить его программно, используя [closeButton setEnabled:YES]
и т. Д., Но, похоже, это не дает никакого эффекта. Я подтвердил, что это происходит только тогда, когда я изменил цель / действие кнопки закрытия.
Есть идеи, как избежать такого поведения на Snow Leopard, или, может быть, альтернативный способ взлома кнопки закрытия? Что управляет включенным состоянием кнопок панели инструментов? Может быть, я мог бы что-то там переопределить?