NSWindow忽略鼠标/键盘事件

时间:2012-10-01 17:22:30

标签: cocoa events user-controls nswindow nswindowcontroller

目前我正在开发一个Cocoa应用程序,它由一个主NSWindowController构成,其中显示所有应用程序数据,其他一些NSWindowControllers将出现,就像一个处方集,当用户需要编辑或向主NSWindowController窗口添加更多数据。

我的问题是,当我需要在这些处方集中添加或编辑数据时,主NSWindowController无法进行任何类型的用户互动,以防止主NSWindowController的任何更改显示的信息。

我已经尝试了-(void)setIgnoresMouseEvents:(BOOL)flag但是这个解决方案使得主要的NSWindowController对交互完全透明,任何意外点击,都会与下面的任何窗口进行交互,从而隐藏应用程序。

有谁知道更好的解决方案?

1 个答案:

答案 0 :(得分:2)

我终于找到了我想要的东西:

[NSApp runModalForWindow:(NSWindow *)aWindow];

通过这种方式,我可以阻止与母窗口的任何交互,直到我关闭子窗口并执行:

[NSApp stopModal]; 

以便它再次变为活跃状态。