防止其他窗口在Cocoa中获得焦点

时间:2012-10-26 02:07:35

标签: objective-c macos cocoa

如何防止应用程序中的其他窗口获得焦点?我想在前面加载一个加载窗口让它做它的事情,但我不希望用户能够与应用程序中的其他窗口进行交互。

我可以简单地隐藏应用程序中的其他窗口,但这让用户感到有点不耐烦,让他们的窗口突然消失。同时,我不能让用户在加载期间继续与其他窗口交互,因为加载将在每个窗口上更新数据(将发生同步问题)。我可以添加额外的锁定机制,但是如果它像强制单个窗口保持在顶部并保持对焦一样简单,我宁可不要。

谢谢!

1 个答案:

答案 0 :(得分:1)

查看模态窗口。

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/WinPanel/Concepts/UsingModalWindows.html

  

您可以以应用程序模式方式运行整个窗口或面板,   使用应用程序的正常事件循环机制但限制   输入到模态窗口或面板。模态操作非常有用   在操作之前需要用户注意的窗口和面板   可以继续示例包括错误消息和警告,以及   需要输入的操作,例如打开的对话框或对话框   适用于多个窗口。