cocoa - NSWindow 忽略鼠标/键盘事件

标签 cocoa events user-controls nswindow nswindowcontroller

此时我正在开发一个 Cocoa 应用程序,它由一个主 NSWindowController 组成。 ,其中显示了所有应用程序数据和其他一些数据 NSWindowControllers当用户需要编辑或添加更多数据到主NSWindowController时,它会像处方集一样出现。窗口。

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

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

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

最佳答案

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

[NSApp runModalForWindow:(NSWindow *)aWindow];

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

[NSApp stopModal]; 

以便它再次激活。

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

相关文章:

cocoa - 如何在 Cocoa 中以编程方式创建 bundle ?

javascript - jQuery:让事件在彼此之后运行(队列)

C# WPF : Place UserControl in DataGridRow

c# - UserControl 的 BeginUpdate() EndUpdate

objective-c - 将沙盒应用程序添加到登录项

objective-c - 将 NSTableView 和 NSArrayController 绑定(bind)在一起

javascript - 主干/Marionette 事件聚合器 - 为什么这样的设计模式

node.js - 如何模拟 irc 服务器断开连接来测试我的 nodejs irc 机器人?

c# - 在 wpf 中显示用户控件的替代方法

cocoa - cocoa 和Photoshop之间的颜色差异