有人可以给从可可应用通知中心发送测试通知的例子吗? 例如。 当我点击一个NSButton
Answer 1:
在山狮的通知是由两类处理。 NSUserNotification
和NSUserNotificationCenter
。 NSUserNotification
是您的实际通知,它有一个标题,消息等,可以通过属性设置。 为了提供您已经创建了一个通知,您可以使用deliverNotification:
方法NSUserNotificationCenter可用。 苹果的文档有详细的资料NSUserNotification & NSUserNotificationCenter但基本的代码来发布通知如下:
- (IBAction)showNotification:(id)sender{
NSUserNotification *notification = [[NSUserNotification alloc] init];
notification.title = @"Hello, World!";
notification.informativeText = @"A notification";
notification.soundName = NSUserNotificationDefaultSoundName;
[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification];
[notification release];
}
这会产生一个通知,一个标题,一个消息时,它显示的是将播放默认声音。 还有很多更多,您可以用通知的不仅仅是这一点(如调度通知)做的,这就是我链接到文档中的所有细节。
一个小点,通知将只在您的应用程序的关键应用程序中显示。 如果你想,无论你的应用是关键还是不是你的通知显示,你需要指定一个委托NSUserNotificationCenter
并重写委托方法userNotificationCenter:shouldPresentNotification:
以便它返回YES。 对于文档NSUserNotificationCenterDelegate
可以发现这里
这里是不管,如果你的应用是关键,显示提供委托NSUserNotificationCenter,然后迫使通知的例子。 在应用程序的AppDelegate.m文件,编辑这样说:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[[NSUserNotificationCenter defaultUserNotificationCenter] setDelegate:self];
}
- (BOOL)userNotificationCenter:(NSUserNotificationCenter *)center shouldPresentNotification:(NSUserNotification *)notification{
return YES;
}
而在AppDelegate.h,声明类符合NSUserNotificationCenterDelegate协议:
@interface AppDelegate : NSObject <NSApplicationDelegate, NSUserNotificationCenterDelegate>
文章来源: Send notification to Mountain lion notification center