2012-07-27 84 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