2010-05-05 47 views
0

如果從可可後臺進程調用帶來NSRunAlertPanel對話前在後臺進程

NSRunAlertPanel() 

,對話不親臨前線,而是留下的其他窗口。這post表明,如果將進程轉換爲前臺進程,則可以將對話置於前端。但是,如果將流程保留在後臺進程中,是否有任何方法可以實現此行爲?

回答

2

你想做什麼?後臺進程仍然可以顯示用戶界面,並且不需要使用TransformProcessType;只要確保你是LSUIElement,而不是LSBackgroundOnly(或已棄用的NS *等價物)。您通常需要使用TransformProcessType的唯一原因是您需要Dock圖標或菜單欄。

+0

我有一個運行的程序在菜單欄中出現。當程序開始運行時,我希望它發出一個對話,詢問用戶是否要將程序設置爲在啓動時運行。現在調用「NSRunAlertPanel()」對話框出現,但通常隱藏在其他窗口後面。如何讓我的程序在只有菜單欄存在的情況下運行,並使對話位於所有窗口的前面? – mon4goos 2010-05-06 03:08:14

+1

您需要將您的應用程序放在前面:[NSApp activateIgnoringOtherApps:YES]; – 2010-05-06 03:34:05