Come mostrare una schermata iniziale durante il lancio di un'applicazione Cocoa?

StackOverflow https://stackoverflow.com/questions/685062

  •  22-08-2019
  •  | 
  •  

Domanda

Vorrei mostrare all'utente una schermata iniziale (una foto) mentre i miei lanci di applicazione Cocoa-based. Come sarebbe possibile?


Innanzitutto grazie a lot. perché la mia applicazione in esecuzione per un tempo, mentre, per cui voglio mostrare una spruzzata prima applicazione in esecuzione. Ora, se mi mostra una finestra all'interno con un'immagine, dopo che il modo di eseguire l'applicazione? Come fare in modo che l'applicazione in esecuzione dopo il tonfo che mostra? Come fare per ottenere la sequenza?


In primo luogo ringrazio molto. E mi mostra la finestra in modo applicationWillFinishLaunching utilizzare orderFront, poi nasconderlo in applicationDidFinishLaunching: utilizzare orderOut, ora ho scoperto che il MainWindow non mostrare e l'applicazione termina, perché? Come fare per Resolute questa domanda? Grazie!

È stato utile?

Soluzione

Anche se la risposta di Pietro è in ultima analisi corretta ( dovrebbe riscrivere la vostra applicazione per lanciare più velocemente), a volte questo non è una soluzione pratica. Ad esempio codice di caricamento dopo l'applicazione può prendere (per esempio un'applicazione di acquisizione dati) troppo lungo, costringendolo da caricare all'avvio. Se si decide che si desidera mostrare una schermata iniziale, il modo più semplice è quello di mostrare in modo applicationWillFinishLaunching: del delegato dell'applicazione. Creare una finestra spruzzata nelle applicazioni MainMenu.nib e aggiungere una presa di corrente per la vostra applicazione delegato fa riferimento a quella finestra. È quindi possibile inserire la finestra sullo schermo in applicationWillFinishLaunching: e nasconderlo in applicationDidFinishLaunching:. Si noti che NSRunLoop del thread principale non è iterazione durante questo tempo, quindi se si desidera aggiornare la schermata iniziale (con lo stato, una barra di avanzamento, o tali), avrete bisogno di gestire quelli ridisegnare gli eventi stessi.

Ancora una volta, pensare molto sul fatto che il tempo di avvio è necessario. Se lo è, che mostra una schermata con un indicatore di progess è il minimo che ti devo vostri utenti.

Altri suggerimenti

Perché odi vostri utenti?

Scherzi a parte, non farlo. Non fate i vostri utenti l'ora di usare la vostra applicazione. Fai la tua applicazione avviare rapidamente, invece.

(E solo nel caso in cui si insiste su una risposta:. Mostra una finestra con l'immagine in esso, poi nascondere la finestra quando si sente l'utente ha atteso abbastanza a lungo)

Basta mettere una finestra con l'immagine e chiuderlo quando si è fatto con la vostra inizializzazione lancio.

La risposta di Barry di cui sopra non sembra funzionare per le applicazioni basati su documenti. Mostrando una finestra spruzzata all'interno applicationWillFinishLaunching: interferisce con la sequenza di avvio delle app in modo che la finestra del documento non viene creato. Ho caricato un qui . In applicationWillFinishLaunching:, commentare [_splashWindow orderFront:self ] e la finestra del documento verrà su.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top