2013-02-25 121 views
2

是否有可能檢測到用戶雙擊我的應用程序(在查找程序中)是否已經打開?我需要檢測這個,因爲我的應用程序運行隱藏,只有當用戶「重新打開」它應該顯示一個用戶界面。檢測應用程序重新打開?

發生這種情況時,是否有某種發佈到應用程序的事件/通知?

編輯:我知道Mac OS X只允許一個實例。如果用戶嘗試以再次啓動應用,則需要在當前實例上調用方法。

編輯:好像 - (BOOL)applicationShouldHandleReopen :(NSApplication *)theApplication hasVisibleWindows :(布爾)標誌 應該做的伎倆。

+0

通常可可應用程序不允許多個實例同時運行。 – 2013-02-25 12:46:38

+0

@ParagBafna我知道,如果用戶_tries_再次啓動應用程序,我只需要在當前實例上調用一個方法。 – Wesley 2013-02-25 12:47:41

回答

0

您可以使用NSApplication代表- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag

應用程序發送到委託之前,默認行爲 重新打開(拉普)的AppleEvents。

0

執行applicationWillUnhide:(來自NSApplicationDelegate協議)在您的應用程序委託。應該在用戶嘗試取消隱藏應用程序時調用它。

+0

其實我可能還不清楚,應用程序在系統菜單欄中只有一個圖標運行,但這也可以通過應用程序首選項隱藏。我認爲這與通過cmd + h或最小化隱藏/取消隱藏不同。對此感到抱歉。 – Wesley 2013-02-25 12:54:39

+0

@Wesley,聽起來好像你希望你的程序在用戶試圖「打開」的時候從狀態項轉換成正常的完整應用程序,大概是使用TransformProcessType()。這很有趣 - 你成功了嗎?任何陷阱? – 2013-11-09 01:53:28

0

在您的應用程序委託中實施-applicationDidBecomeActive:

相關問題