我有一个Cocoa应用程序,使用
我不知道这是否重要,但该应用程序是作为
以下是显示警报的代码:
NSAlert
类显示应用程序模态警报。我希望警报窗口浮动在所有其他应用程序的窗口上方。这可以使用NSAlert
完成,还是需要实现自己的窗口?我不知道这是否重要,但该应用程序是作为
NSStatusItem
实现的代理应用程序(LSUIElement
为true)。 (有关应用程序的更多信息,包括源代码,请参见<here>。)以下是显示警报的代码:
- (void)showTimerExpiredAlert {
[NSApp activateIgnoringOtherApps:YES];
NSAlert *alert = [[NSAlert alloc] init];
[alert setAlertStyle:NSInformationalAlertStyle];
[alert setMessageText:NSLocalizedString(@"Menubar Countdown Complete", @"Expiration message")];
[alert setInformativeText:NSLocalizedString(@"The countdown timer has reached 00:00:00.",
@"Expiration information")];
[alert addButtonWithTitle:NSLocalizedString(@"OK", @"OK button title")];
[alert addButtonWithTitle:NSLocalizedString(@"Restart Countdown...", @"Restart button title")];
NSInteger clickedButton = [alert runModal];
[alert release];
if (clickedButton == NSAlertSecondButtonReturn) {
// ...
}
}
在runModal
调用之前,我尝试放置了以下内容:
[[alert window] setFloatingPanel:YES];
我也尝试了这个:
[[alert window] setLevel:NSFloatingWindowLevel];
但是,如果我点击另一个应用程序的窗口,这两个设置都无法使窗口保持在其他窗口之上。 我怀疑runModal
没有遵守这两个设置。