2011-04-08 15 views
6

Kullanıcı oturum açtığında otomatik olarak başlatmak istediğim bir uygulama geliştiriyorum. Bunun nasıl yapılacağına dair bazı yanıtlar var, özellikle kullanıyorum this GitHub repository kodu ve iyi çalışıyor.Mac OS X: ana pencereyi göstermeden, girişte uygulamayı açın

Şimdi ne yapmak istiyorum ve nasıl yapılacağını bulamadım, uygulamayı başlatır, ancak ana pencereyi göstermeden. Bu yalnızca uygulama girişte başlatıldığında, uygulama kapatılırsa ve kullanıcı Dock'ta bir tıklama ile açarsa (ya da her neyse), pencereyi göstermesini isterim.

Mümkün mü? Bunu nasıl yapacağınız hakkında bir fikrin var mı?

Oturum açmada başlatılan uygulamaları ayarladığınız Hesap sistemi tercihinde, istediğimi yapan bir "gizle" denetimi var, ancak program aracılığıyla bunu yapmak istiyorum.

cevap

10

Peki, nasıl yapılacağını buldum ... Bu Open Radar bug report helped, yanlış özelliği kullanıyordum.

İşte kod:

- (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); 
} 
} 

çözüm anahtarı kLSSharedFileListLoginItemHidden ve değer gerçek bir sözlük oluşturmak ve LSSharedFileListInsertItemURL işlevine geçmek oldu.

+0

Merhaba Marcos, Mac OS X uygulamasında da aynı sorunu yaşıyorum. Uygulamamı Mac OS X Lion'a yükledikten sonra, kodunuzu denedim, uygulamam için Kullanıcı ve Gruplar-> LoginItems'de gizli (Kene etkin) olarak ayarlar. Ancak, makinemi yeniden başlattığımda, otomatik olarak göstermek yerine UIWindow'u gizlemek istediğim uygulama penceremi açar. Lütfen bana tam olarak nasıl tamir edebileceğimi söyler misiniz? – Getsy

+0

Bu cevap için teşekkürler, ancak uygulamanın otomatik olarak veya kullanıcı tarafından ana pencerenin görüntülenip görüntülenmeyeceğinden bağımsız olarak nasıl başlatıldığını nasıl anlarım? Teşekkürler !! –

+0

@ marcos-crispino Uygulamanın girişte açılıp açılmadığını manuel olarak açıp açmadığınızı görmek için lütfen * check * kodunu nereye koyabilirsiniz? – cksubs