如何解决用委托打开警报框NASlert并阻止所有其他窗口?
| 有没有一种方法可以打开NSAlert窗口,为didEnd回调设置委托,并且在显示警报时,所有其他窗口都应“禁用”(窗口本身可以但不能按任何按钮或更改任何文本)?解决方法
在您的NSAlert代码中添加
NSModalSession session = [NSApp beginModalSessionForWindow:theWindow];
[NSApp runModalSession:session];
// NSAlert stuff here ...
在您的didEnd回调中添加
[NSApp endModalSession:session];
有关模式窗口的更多信息,请阅读NSApplication \的“管理事件循环”部分。
更新:
这是来自Apple文档的示例代码,显示了如何在没有回调的情况下运行模式。
NSModalSession session = [NSApp beginModalSessionForWindow:theWindow];
for (;;) {
if ([NSApp runModalSession:session] != NSRunContinuesResponse)
break;
[self doSomeWork];
}
[NSApp endModalSession:session];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。