好吧,我發現怎麼辦呢?這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功能。
嗨馬科斯,我有我的Mac OS X應用程序相同的問題。我在Mac OS X Lion上安裝了我的應用程序之後,嘗試了您的代碼,並將其設置爲隱藏(啓用了Tick),以便在我的應用程序的用戶和組中使用 - > LoginItems。但是,當我重新啓動我的機器時,它打開了我的應用程序窗口,我想隱藏UIWindow而不是自動顯示。你能告訴我我該如何修正它? – Getsy 2012-08-05 19:31:26
感謝這個答案,但我怎麼知道應用程序是否已自動啓動或由用戶獨立顯示或不顯示主窗口?謝謝 !! – 2013-01-04 17:36:54
@馬科斯CRISPINO能否請您發佈的代碼,你* *檢查,看是否該應用程序在登錄與手動打開開的呢? – cksubs 2013-04-22 20:39:08