NSUserNotification发出声音但不显示

时间:2015-01-21 21:21:20

标签: objective-c macos nsusernotification

我的NSUserNotification正在播放,播放给定的声音,但如果我的应用不是最顶级的应用,则无法在屏幕上直观显示。

如果我的应用程序在后台,则不会显示通知。如果我的应用程序处于活动状态,则显示在这两种情况下声音都会播放。

以下是我发送通知的方式:

NSUserNotification *notification = [[NSUserNotification alloc] init];
[notification setTitle: @"hi"];
[notification setSoundName: NSUserNotificationDefaultSoundName];
[notification setDeliveryDate: [NSDate dateWithTimeIntervalSinceNow: 3]];
[[NSUserNotificationCenter defaultUserNotificationCenter] scheduleNotification: notification];

我正在压倒shouldPresentNotification以永远呈现它。

[NSUserNotificationCenter defaultUserNotificationCenter].delegate = self;

...

- (BOOL)userNotificationCenter:(NSUserNotificationCenter *)center shouldPresentNotification:(NSUserNotification *)notification {
    return YES;
}

OSX 10.10.1 Yosemite

如何始终显示此通知,就像它始终播放声音一样?

1 个答案:

答案 0 :(得分:0)

我找到了两种方法来始终显示通知:

使用

删除所有以前的通知
[[NSUserNotificationCenter defaultUserNotificationCenter] removeAllDeliveredNotifications];

或者通过更改标识符

notification.identifier = @"com.yourcompany.yourapp.notificationidentifier";