didActivateNotification

didActivateNotification

我正在努力使osx本机通知正常工作。我能够创建通知,但无法使didActivateNotification正常工作。我希望didActivateNotification可以使我聚焦窗口并从通知中心删除通知。

这是我的代码:notice.m

#import "Notice.h"

@implementation Notice

- (void) notify:(NSDictionary *)message {

    NSLog(@"Notification - Show it");

    NSUserNotification *notification = [[NSUserNotification alloc] init];
    [notification setTitle:[message valueForKey:@"title"]];
    [notification setInformativeText:[message valueForKey:@"content"]];
    [notification setDeliveryDate:[NSDate dateWithTimeInterval:0 sinceDate:[NSDate date]]];
    [notification setSoundName:NSUserNotificationDefaultSoundName];
    NSUserNotificationCenter *center = [NSUserNotificationCenter defaultUserNotificationCenter];
    [center scheduleNotification:notification];
}

- (void) userNotificationCenter:(NSUserNotificationCenter *)center didActivateNotification:(NSUserNotification *)notification
{

    NSLog(@"Notification - Clicked");

    notification=nil;
    [center removeDeliveredNotification: notification];
}

这是正确触发:
NSLog(@"Notification - Show it");

但这不是:
NSLog(@"Notification - Clicked");

有什么建议么?谢谢

最佳答案

您可能必须为NSUserNotificationCenter设置委托:

NSUserNotificationCenter *center = [NSUserNotificationCenter defaultUserNotificationCenter];
center.delegate = self;

您还应该确保Notice类实现了NSUserNotificationCenterDelegate协议。

关于objective-c - didActivateNotification没有响应NSUserNotification,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13204746/

10-09 16:23