2013-09-07 1 views
3

Я пытаюсь переопределить newDocument: в моем приложении на основе документа Cocoa. У меня есть стандартный проект, когда при нажатии кнопки New в строке меню первый ответчик получает действие. Моя цель состоит в том, чтобы окно появилось с новыми конфигурациями документов, когда в строке меню нажата кнопка «Новый» (вроде Photoshop). После прочтения Apple Docs я обнаружил, что мне нужно переопределить newDocument: в подклассе NSDocumentController. Затем я устанавливаю, что окно конфигурации должно появляться при вызове newDocument:.NSDocumentController newDocument:

Каков наилучший способ использования моего подкласса NSDocumentContoller? Я мог бы перетащить объект в Interface Builder и подключить метод к панели MainMenu, но я не уверен, что это хорошая практика. Как использовать мой NSDocumentController в качестве нового первого ответчика для моего MenuBar?

ответ

4

NSDocumentController одноэлементно, и вы должны получить доступ к вашему подклассу всегда с помощью метода [NSDocumentController sharedDocumentController] согласиться с этой точкой вы должны

  • В maimenu.xib Перетащите NSObject и указать пользовательский класс к вашему NSDocumentController подкласс, это необходимо, потому что какао экосистема создает одноплодной до того любого другого класса

После этого вы можете переопределить - (IBAction)newDocument:(id)sender и сделайте то, что вы предпочитаете.

Это немного старый, но я нашел очень полезный Seashore исходный код, когда мне нужно создать подкласс NSDocumentController

На рисунке ниже показаны элементы в XCode enter image description here

+1

Спасибо! Мне нужно было сделать именно это (переопределить 'newDocument:'), и ваши инструкции отлично работают. – Jaanus

Смежные вопросы