2013-04-01 12 views
11

Napisałem aplikację OSX, która korzysta z magazynu dokumentów iCloud. Ilekroć go otworzyć w Mountain Lion (nie na lwa), otwiera się okno iCloud, które wygląda następująco:Zapobieganie otwieraniu okna iCloud w uruchamianiu aplikacji OSX 10.8

enter image description here

Czy istnieje sposób, aby temu zapobiec na uruchomienie?

Aktualizacje:

1) applicationShouldOpenUntitledFile: nie nazywa uzyskiwanie (tak, jestem pewien, że słucham w moim delegata
2) Jeżeli wymusić zamknięcie aplikacji, następnym razem, gdy otwiera się. , Nie mam okna dialogowego. Ale jeśli przejdę normalny proces zamykania, pojawi się.

Update 2 (również dodawane jako odpowiedź, aby pomóc ludziom, że mogą natknąć tej kwestii w przyszłości): applicationShouldOpenUntitledFile: z duplikatu pytanie nie działa. Po wielu eksperymentach odkryłem, że jeśli usunę klucz NSDocumentClass i wartość z mojej listy Info.plist w tablicy CFBundleDocumentTypes, okno nie będzie już otwarte. Dodałem również tę odpowiedź do duplikatu pytania.

+0

[Czy ten związany pytanie ma odpowiedź dla ciebie?] (Http://stackoverflow.com/questions/13825228/icloud-enabled-stop-the-open-file-displaying-on-application-launch ? rq = 1) –

+0

Nie - chociaż objawy są podobne, proponowane rozwiązanie nie działa. W mojej aplikacji - (BOOL) applicationShouldOpenUntitledFile: (NSApplication *) nadawca nie jest wywoływany przez system. –

+0

Proponuję odpowiedzieć na własne pytanie. Aktualizacja 2 powyżej jest naprawdę odpowiedzią. Możesz na nie odpowiedzieć iw tym momencie, po 1 dniu oczekiwania, możesz go zaakceptować. –

Odpowiedz

-1

Urządzenie applicationShouldOpenUntitledFile: z iCloud enabled - Stop the open file displaying on application launch? nie działa. Po wielu eksperymentach doszedłem do wniosku, że jeśli usunę klucz NSDocumentClass i wartość z mojego Info.plist w tablicy CFBundleDocumentTypes, to okno nie będzie już otwarte.

+0

Po usunięciu makeWindowControllers dla podklasy NSPersistentDocument nadal nie jest wywoływana. Tylko po wyłączeniu iCloud ukrywa to okno i wywołuje makeWindowControllers – coolcool1994

0

Umieszczenie poniżej kodów w swoim Delegacie aplikacji pozwala ominąć ten ekran iCloud Nowy dokument. Przetestowany dla High Sierra.

-(void)applicationDidFinishLaunching:(NSNotification *)notification 
{ 
    // Schedule "Checking whether document exists." into next UI Loop. 
    // Because document is not restored yet. 
    // So we don't know what do we have to create new one. 
    // Opened document can be identified here. (double click document file) 
    NSInvocationOperation* op = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(openNewDocumentIfNeeded) object:nil]; 
    [[NSOperationQueue mainQueue] addOperation: op]; 
} 

-(void)openNewDocumentIfNeeded 
{ 
    NSUInteger documentCount = [[[NSDocumentController sharedDocumentController] documents]count]; 

    // Open an untitled document what if there is no document. (restored, opened).  
    if(documentCount == 0){ 
     [[NSDocumentController sharedDocumentController]openUntitledDocumentAndDisplay:YES error: nil]; 
    } 
} 
Powiązane problemy