在基于文档的应用程序中使用最前面的窗口控件?

时间:2011-02-17 22:11:25

标签: objective-c cocoa nswindow document-based

我已经扫描了相关文档并进行了相当广泛的搜索,并且没有找到关于此主题的内容。

我需要做的是与我的一个NSWindows的特定实例交互 - 也就是说,通过在Xcode中创建基于文档的应用程序通过NSDocument系统创建的实例。

有没有办法做到这一点?像[[NSSharedDocumentController frontmostWindow] subView:doAction]这样的东西,也许?

1 个答案:

答案 0 :(得分:1)

要获取最前面的窗口(也称为主窗口),请使用-[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]返回该窗口控制器管理的窗口。