2011-04-08 18 views
6

時有關於如何做到這幾個答案,尤其是我使用的用戶登錄。代碼從this GitHub repository,它工作正常。的Mac OS X:打開應用程序登錄時,不顯示我正在開發,我想自動啓動應用程序的主窗口

我現在想要什麼,也找不到怎麼辦呢,是啓動應用程序,但沒有顯示主窗口。這隻有當應用程序在登錄時開始,如果應用程序關閉並且用戶在Dock(或其他)中單擊打開它,我希望它顯示窗口。

可能嗎?任何想法如何做到這一點?

在帳戶系統首選項,讓您設定在登錄時啓動應用程序,有一個「隱藏」的支票,我想要做什麼,但我想以編程方式做到這一點。

回答

10

好吧,我發現怎麼辦呢?這Open Radar bug report helped,我用錯了屬性。

下面的代碼:

- (void)enableLoginItemWithLoginItemsReference:(LSSharedFileListRef)theLoginItemsRefs ForPath:(NSString *)appPath { 
// We call LSSharedFileListInsertItemURL to insert the item at the bottom of Login Items list. 
CFURLRef url = (CFURLRef)[NSURL fileURLWithPath:appPath]; 

CFMutableDictionaryRef inPropertiesToSet = CFDictionaryCreateMutable(NULL, 1, NULL, NULL); 
CFDictionaryAddValue(inPropertiesToSet, kLSSharedFileListLoginItemHidden, kCFBooleanTrue); 

LSSharedFileListItemRef item = LSSharedFileListInsertItemURL(theLoginItemsRefs, kLSSharedFileListItemLast, NULL, NULL, url, inPropertiesToSet, NULL);  
if (item) { 
    CFRelease(item); 
} 
} 

的解決方案是創建一個具有關鍵kLSSharedFileListLoginItemHidden和價值字典,並把它傳遞給LSSharedFileListInsertItemURL功能。

+0

嗨馬科斯,我有我的Mac OS X應用程序相同的問題。我在Mac OS X Lion上安裝了我的應用程序之後,嘗試了您的代碼,並將其設置爲隱藏(啓用了Tick),以便在我的應用程序的用戶和組中使用 - > LoginItems。但是,當我重新啓動我的機器時,它打開了我的應用程序窗口,我想隱藏UIWindow而不是自動顯示。你能告訴我我該如何修正它? – Getsy 2012-08-05 19:31:26

+0

感謝這個答案,但我怎麼知道應用程序是否已自動啓動或由用戶獨立顯示或不顯示主窗口?謝謝 !! – 2013-01-04 17:36:54

+0

@馬科斯CRISPINO能否請您發佈的代碼,你* *檢查,看是否該應用程序在登錄與手動打開開的呢? – cksubs 2013-04-22 20:39:08

相關問題