2011-02-17 11 views
0

我已经扫描了文档,搜索范围相当广泛,并没有发现任何关于此主题的内容。在基于文档的应用程序中使用最前面的窗口控件?

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

那么有没有办法做到这一点?就像[[NSSharedDocumentController frontmostWindow] subView:doAction],也许?

+0

你能详细说明一下吗?如果您的应用程序打开了五个文档,您对哪一个感兴趣?您的应用程序是否具有除文档窗口以外的窗口?你的'NSDocument`子类是否管理自己的窗口控制器? – 2011-02-18 00:11:41

回答

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]返回由该窗口控制器管理的窗口。

相关问题