目前,我正在开发一个由主NSWindowController组成的Cocoa应用程序,其中显示了所有应用程序数据以及一些其他NSWindowControllers出现的内容,例如配方,当用户需要编辑或添加时更多数据到NSWindowController主窗口。

我的问题是,当我需要在这些公式中添加或编辑数据时,主NSWindowController不能进行任何类型的用户交互,以防止主NSWindowController的显示信息发生任何更改。

我已经尝试过-(void)setIgnoresMouseEvents:(BOOL)flag,但是此解决方案使主NSWindowController对交互完全透明,可以进行任何意外单击,与任何波纹管进行交互,从而隐藏应用程序。

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

最佳答案

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

[NSApp runModalForWindow:(NSWindow *)aWindow];


这样,在关闭子窗口并执行以下操作之前,我可以防止与父窗口发生任何交互:

[NSApp stopModal];


使它再次变为活动状态。

关于cocoa - NSWindow忽略鼠标/键盘事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12677976/

10-10 05:10