当App显示NSAlert时,保持Cocoa窗口最小化

时间:2015-08-12 00:00:25

标签: swift cocoa nswindow nsalert minimized

我很难确定如何在应用程序运行时将应用程序保持最小化并显示NSAlert。

缺点是我有一个传输数据的应用程序,并在完成传输时显示NSAlert。如果应用程序被最小化,我希望它保持这种方式,即使它显示NSAlert。

我用(在Swift中)调用NSAlert:

alert.beginSheetModalForWindow(self, completionHandler: handler)

但是当这段代码触发时,窗口会自动化。如果窗口已经没有最小化,它就不会抓住焦点或做任何意想不到的事情(这就是我想要的方式)。

有没有办法实现这个目标?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试延迟显示NSAlert。

将警报代码放入方法中。当有触发器调用此方法时,请检查您的窗口是否可见。如果是 - >叫这个方法。如果不是 - >安排一秒钟后会启动的NSTimer并调用自定义方法来检查窗口是否可见(是 - >显示警告,否 - >再次安排计时器)。

仅供参考:NSAlert显示为工作表时会创建NSPanel的实例,它是NSWindow的子类。