Работаете с элементами управления переднего окна в приложении на основе документов? - PullRequest
0 голосов
/ 18 февраля 2011

Я отсканировал документацию, довольно много гуглил и ничего не нашел по этому вопросу.

Что мне нужно сделать, так это взаимодействовать с конкретным экземпляром одного из моих NSWindows - то есть созданным с помощью системы NSDocument, созданной путем создания приложения на основе документов в Xcode.

Так есть ли способ сделать это? Что-то вроде подпункта [[NSSharedDocumentController frontmostWindow]: doAction], возможно?

1 Ответ

1 голос
/ 18 февраля 2011

Чтобы получить самое переднее окно (или главное окно), используйте -[NSApplication mainWindow]:

NSWindow *mainWindow = [NSApp mainWindow];

Для получения окна, соответствующего заданному документу:

NSDocument *someDocument; // reference to the document you’re interested in
NSWindow *window = [[[someDocument windowControllers] objectAtIndex:0] window];

NSDocument создает контроллер одного окна для управления соответствующим окном документа, поэтому -[NSDocument windowControllers] возвращает массив с единственным элементом, соответствующим контроллеру окна. -[NSWindowController window] возвращает окно, управляемое этим оконным контроллером.

...