2012-10-01 85 views
0

此时我正在开发一个Cocoa应用程序,它由一个主NSWindowController组成,其中显示所有的应用程序数据以及一些其他的NSWindowControllers,需要编辑或添加更多数据到主NSWindowController窗口。NSWindow忽略鼠标/键盘事件

我的问题是,当我需要这些处方添加或编辑数据,主要NSWindowController不能有任何类型的用户互动,以防止在主NSWindowController的任何改变显示的信息。

我已经尝试过-(void)setIgnoresMouseEvents:(BOOL)flag但这种解决方案使主要NSWindowController完全透明的互动,使得任何意外点击,任何窗口波纹管从而隐藏应用程序进行交互。

有没有人知道更好的解决方案?

+0

请记住,你可以接受你自己的答案。请接受它:这将标记为已回答的问题。 – Artemix

回答

2

我终于找到了我一直在寻找:

[NSApp runModalForWindow:(NSWindow *)aWindow]; 

这样,我可以防止与母窗口的任何交互,直到我关闭子窗口,并做到:

[NSApp stopModal]; 

所以它再次变得活跃。