我的第一个Mac开发笔记(NSUserNotification)

首先,我们应该怎样去创建一个通知中心呢?下面我以代码的形式来展示如何构建一个通知中心:

 NSUserNotification *notification = [[NSUserNotification alloc] init];//创建通知中心
  notification.title = @"通知中心";
  notification.subtitle = @"小标题";
  notification.informativeText = @"详细文字说明";
  notification.contentImage = [NSImage imageNamed:@"ladybugThumb.jpg"];
  
  //只有当用户设置为提示模式时,才会显示按钮
  notification.hasActionButton = YES;
  notification.actionButtonTitle = @"确定";
  notification.otherButtonTitle = @"取消";

 一条通知被创建好了,要让该条通知显示给用户,那么我们就需要通过通知中心将通知递交给用户,代码如下:

 //递交通知
 [[NSUserNotificationCenter defaultUserNotificationCenter] scheduleNotification:notification];
    //设置通知的代理
 [[NSUserNotificationCenter defaultUserNotificationCenter] setDelegate:self];

另外NSUserNotificationCenter提供了三个代理来,让软件在通知不同状态下收到消息

//通知已经提交给通知中心
- (void)userNotificationCenter:(NSUserNotificationCenter *)center didDeliverNotification:(NSUserNotification *)notification
{
    
}
//用户已经点击了通知
- (void)userNotificationCenter:(NSUserNotificationCenter *)center didActivateNotification:(NSUserNotification *)notification
{
    
}

// Sent to the delegate when the Notification Center has decided not to present your notification, for example when your application is front most. If you want the notification to be displayed anyway, return YES.
//returen YES;强制显示(即不管通知是否过多)
- (BOOL)userNotificationCenter:(NSUserNotificationCenter *)center shouldPresentNotification:(NSUserNotification *)notification
{
    return YES;
}

通知和iOS一样,也提供了删除通知的功能,代码如下:

//删除已经显示过的通知
[[NSUserNotificationCenter defaultUserNotificationCenter] removeAllDeliveredNotifications];


你可能感兴趣的:(ios,mac)