1

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

简而言之,我有一个正在传输数据的应用程序,它在完成传输时会显示一个 NSAlert。如果应用程序被最小化,我希望它保持这种状态,即使它显示 NSAlert。

我用(在 Swift 中)调用 NSAlert:

alert.beginSheetModalForWindow(self, completionHandler: handler)

但是当此代码触发时,窗口会自动缩小。如果窗口尚未最小化,则它不会抓住焦点或做任何意想不到的事情(这是我想要的方式)。

有没有办法做到这一点?谢谢!

4

1 回答 1

0

您可以尝试延迟显示 NSAlert。

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

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

于 2015-08-31T13:32:55.203 回答