0
有沒有辦法打開一個NSAlert窗口,爲didEnd回調設置一個委託,並顯示警告時,所有其他窗口應該「禁用」(可以窗口本身,但不推動任何按鈕或更改任何文本)?與代表打開警報框(NASlert)並阻止所有其他窗口?
有沒有辦法打開一個NSAlert窗口,爲didEnd回調設置一個委託,並顯示警告時,所有其他窗口應該「禁用」(可以窗口本身,但不推動任何按鈕或更改任何文本)?與代表打開警報框(NASlert)並阻止所有其他窗口?
在你NSAlert代碼添加
NSModalSession session = [NSApp beginModalSessionForWindow:theWindow];
[NSApp runModalSession:session];
// NSAlert stuff here ...
在你didEnd回調添加
[NSApp endModalSession:session];
更多有關模態窗口讀NSApplication的 「管理事件循環」 一節。
更新:
下面是來自蘋果的doc示例代碼展示瞭如何在不回調運行模式。
NSModalSession session = [NSApp beginModalSessionForWindow:theWindow];
for (;;) {
if ([NSApp runModalSession:session] != NSRunContinuesResponse)
break;
[self doSomeWork];
}
[NSApp endModalSession:session];
有沒有做到這一點,而無需代碼添加到didEnd回調? – 2011-06-15 10:39:24
我剛剛更新了我的答案。 – cocoafan 2011-06-15 11:47:02