2012-03-12 3 views
20

Voglio sapere come posso creare widget/controlli personalizzati in Cocoa. Non un tutorial completo, ma alcune indicazioni su cosa iniziare a guardare. Sono confuso da visualizzazioni personalizzate, Animazione di base, ecc. Mi sento perso.Cocoa OSX widget/controlli personalizzati

Vedo un sacco di controlli che essere bello, come in Reeder App, o Sparrow ecc, ad esempio:

Sparrow

Il lato sinistro è un menu pieghevole che comprende le animazioni ecc Come posso raggiungere qualcosa di simile? Ho pensato di utilizzare un codice JavaScript + WebView + HTML, ma non mi sembra una soluzione ottimizzata.

+1

Questa è una domanda molto ampia - si consiglia di modificarla per renderla più specifica. Le domande specifiche tendono a funzionare meglio in SO - quelle vaghe possono essere chiuse come "non costruttive" o "non una vera domanda". – Caleb

risposta

24

I controlli sono viste, quindi se le visualizzazioni personalizzate ti confondono, dovrai farlo prima di passare ai controlli personalizzati. Anche se dovresti davvero leggere l'intero View Programming Guide, la sezione chiamata Creating a Custom View ti consentirà di iniziare a creare le tue visualizzazioni. Prova a creare una vista semplice che disegna un cerchio, ad esempio, o il tempo.

Quando hai capito le viste, passa ai controlli personalizzati. La maggior parte dei comandi funzionano allo stesso modo. L'utente li tocca, e il controllo risponde: a) rintracciando l'input dell'utente, b) cambiandone il valore, c) inviando il suo messaggio di azione al suo bersaglio, e d) dando all'utente un feedback ridisegnandolo. Per iniziare, assicurati innanzitutto di sapere come usare i controlli. La lettura di Control and Cell Programming Topics dovrebbe essere d'aiuto, e la sezione intitolata Subclassing NSControl copre (ovviamente) la creazione di sottoclassi proprie.

L'esempio che hai fornito è chiaramente Mail.app di Apple. La vista sul lato sinistro della finestra potrebbe essere un'istanza di NSOutlineView o potrebbe essere una classe personalizzata. In entrambi i casi, NSOutlineView sarebbe un buon punto di partenza se si desidera duplicare tale funzionalità. NSOutlineView è una sottoclasse di NSTableView, che a sua volta è una sottoclasse di NSControl, che a sua volta è una sottoclasse di NSView. Leggi Outline View Programming Topics come aiuto per iniziare: le tabelle e i contorni sono estremamente utili, ma anche più complicati da usare rispetto ai controlli di base come pulsanti e campi di testo.

+1

Grazie Caleb, sembra un buon punto di partenza. –

+2

Questo è davvero un bel invio di prerequisiti che non sono generalmente chiari nel cacao. Molto bene – uchuugaka

4

So che è solo una parte dell'interfaccia utente, ma recentemente ho codificato qualcosa di simile alla barra laterale. Se si guarda il codice sorgente, potrebbe darti un po 'di aiuto per imparare a usare i controlli e le celle personalizzati.

È possibile controllare sul Github:
https://github.com/iluuu1994/ITSidebar