2015-12-06 14 views
8

Quando apri un'applicazione basata su iCloud con documenti abilitati su Mac senza documenti attualmente aperti, viene visualizzata la finestra di dialogo Apri file. Come si impedisce che la finestra di dialogo Apri file venga visualizzata all'avvio? Ho una schermata di benvenuto che preferisco mostrare invece.Impedisce la visualizzazione della finestra di dialogo di apertura di iCloud all'avvio in OS X

+0

Ho pensato che un'applicazione basata su documenti avrebbe aperto un nuovo documento all'avvio se nessun documento era aperto all'ultima uscita ..? – insys

+0

Non mi ero reso conto che questo era rilevante ma succede solo con iCloud abilitato. –

+0

Sfortunatamente non esiste una soluzione che posso usare lì. –

risposta

1

Per verificare la tua dichiarazione, ho creato un nuovo progetto di applicazione basato su documenti in XCode e l'ho eseguito. Non capisco una finestra di dialogo di file aperti! Tuttavia ottengo un nuovo documento vuoto. E 'questo che intendevi? Non sono riuscito a trovare alcun modo documentato per sopprimere questo documento vuoto iniziale che viene aperto. Sono riuscito a sopprimere questo comportamento con il seguente hack, utilizzando l'inizializzazione della classe Documento:

- (instancetype)init { 
    self = [super init]; 
    if (self) { 
     // Add your subclass-specific initialization here. 
    } 
    NSLog(@"Document init"); 
    if (alreadysuppressed) 
     return self; 
    alreadysuppressed = 1; 
    return nil; 
} 

Come si può vedere, si avvale di una variabile (denominata 'alreadysuppressed' qui) da ricordare se la soppressione era già fatto, quindi sarà fatto una volta per ogni esecuzione dell'applicazione. So che è un hack ma funziona per l'applicazione basata su documenti generici. Se siete veramente trovato la finestra di dialogo Apri file invece che il comportamento sopra allora vi consiglio di aggiungere un hack simile alla vostra applicazione di classe delegato:

- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender 
{ 
    NSLog(@"applicationShouldOpenUntitledFile: %d", alreadysuppressed); 
    if (! alreadysuppressed) { 
     alreadysuppressed = 1; 
     return NO; 
    } 
    return YES; 
} 

Anche se non ho potuto testare questo scenario come io non sto ottenendo il file aperto finestra di dialogo nell'applicazione basata su documenti generici.

+0

Ho apportato alcune modifiche sopra. Non mi rendevo conto che ciò accade solo con iCloud abilitato, che è il mio caso. –

Problemi correlati