2012-07-27 83 views
2

我只是想给Gyazo应用程序添加一些通知。 我终于能够发送通知到通知中心http://korniltsev.ru/p/jz6m3Nm.png 但是,当我点击它和应用程序未启动它启动以一些奇怪的方式: 它显示空窗口(即使我把它设置为visibleAtLaunch为0)并没有任何反应; http://korniltsev.ru/p/jz6mvk0.png如何处理山狮通知点击

我想要使用的代码是在这里:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 

    NSUserNotification * clicked = [[aNotification userInfo] 
      objectForKey:NSApplicationLaunchUserNotificationKey]; 
    if (clicked){ 
     [NSApp terminate:self]; 
     return; 
    } 
... 

我发送通知这样

NSUserNotificationCenter *manager = [NSUserNotificationCenter defaultUserNotificationCenter]; 
NSUserNotification *urlNotification = [[NSUserNotification alloc]init]; 
[urlNotification setTitle:appName]; 
[urlNotification setInformativeText:url]; 
[manager deliverNotification:urlNotification]; 

我到底做错了什么?

回答

1

[NSApp terminate:self]有很多副作用。你确定这些副作用不会造成你的空白窗口吗?您是否尝试过在applicationDidFinishLaunching中立即拨打[NSApp terminate:self],并确保您的应用程序在每种情况下都干净地退出?如果没有,你可能不得不看看你的应用程序的文档控制器(如果你有)和applicationShouldTerminate

+0

如果我在applicationDidFinish中调用'[NSApp terminate:self]'right,则启动应用程序的时间是正确的。如果我改变'exit(0)'的终止呼叫,结果是一样的。我没有广告管理员。 – 2012-07-29 22:11:18