2013-10-25 85 views
0

我試圖在Mac應用程序中顯示一個通知窗口。在應用程序的試用版本中會出現一些東西。窗口將不能移動30秒(並且它會有一個計數器倒數到0)。 30秒將繼續執行。系統通知窗口卡住導致程序卡住[Cocoa] [Mac OSX]?

這是代碼。

_systemNotificationWindow = [[SystemNotificationWindow alloc]initWithWindowNibName:@"SystemNotificationWindow"]; 
     NSLog(@"1111"); 
     [self.systemNotificationWindow setActionDelegate:self]; 


     [self.systemNotificationWindow startTimer:30]; 
     NSLog(@"2222"); 
     [self.systemNotificationWindow showWindow:self]; 


     NSLog(@"3333"); 

     NSLog(@"4444"); 

的代碼停留在這條線

[self.systemNotificationWindow的ShowWindow:自];

它顯示窗口,但計時器沒有工作,也沒有窗口在30秒後消失。也沒有打印3333和4444。

回答

1

這聽起來像你錯過了一個事件循環來控制計時器,所以我猜你是在事件循環創建之前顯示窗口。

你可以閱讀更多關於事件here和運行循環here

+0

+1。你可以編輯我的代碼來包含事件循環嗎?我是可可的新手,需要我花很多時間來理解這些主題。如果你可以告訴我要添加的行。 – zzzzz

+0

對不起,如果我確切地知道你需要什麼方法,我會以這種方式回答這個問題。在Objective-C中,我還沒有必須自己創建事件循環。如果沒有其他人可以提供它,您可以閱讀文檔並計算出您需要的內容,或延遲在應用程序中顯示該窗口,以便在啓動計時器之前創建主事件循環。 – TheDarkKnight