Voglio disegnare le mie schede personali per NSTabViewItem
s. Le mie schede dovrebbero apparire diverse e iniziare nell'angolo in alto a sinistra e non centrate.Come disegnare le tue schede NSTabView?
Come posso fare questo?
Voglio disegnare le mie schede personali per NSTabViewItem
s. Le mie schede dovrebbero apparire diverse e iniziare nell'angolo in alto a sinistra e non centrate.Come disegnare le tue schede NSTabView?
Come posso fare questo?
NSTabView non è la classe più personalizzabile in Cocoa, ma è possibile creare una sottoclasse e creare il proprio disegno. Non utilizzerai molte funzionalità dalla superclasse oltre a mantenere una collezione di elementi di visualizzazione a schede e finirai per implementare un numero di metodi NSView e NSResponder per far funzionare correttamente la gestione di disegni e eventi.
Potrebbe essere meglio guardare una delle scheda della barra comandi libero o open source prima, ho usato PSMTabBarControl in passato, ed era molto più facile di attuare il mio punto di vista scheda sottoclasse (che è quello che era sostituzione).
Ho recentemente fatto questo per qualcosa su cui stavo lavorando.
Ho terminato di utilizzare una vista tabless tab e quindi di disegnare le schede da solo in un'altra vista. Volevo che le mie schede facessero parte di una barra di stato nella parte inferiore della finestra.
Ovviamente è necessario supportare i clic del mouse che è abbastanza facile, ma è necessario assicurarsi che anche il supporto per la tastiera funzioni, e questo è un po 'più complicato: è necessario eseguire i timer per cambiare scheda dopo l'accesso senza tastiera dopo mezzo secondo (dai un'occhiata al modo in cui OS X lo fa). L'accessibilità è un'altra cosa a cui dovresti pensare ma potresti trovarlo solo funziona - non l'ho ancora controllato nel mio codice.
ho molto è rimasto bloccato su questo - e pubblicato NSTabView with background color - come il PSMTabBarControl è ormai fuori moda anche postato https://github.com/dirkx/CustomizableTabView/blob/master/CustomizableTabView/CustomizableTabView.m
è possibile impostare lo stile del NSTabView di marcaggio e poi controllarlo con un NSSegmentedControl che sottoclassi NSSegmentedCell per sovrascrivere stile e comportamento. Per un'idea su come eseguire questa operazione, consulta questo progetto che emula le schede in stile Xcode 4: https://github.com/aaroncrespo/WILLTabView/.
È molto semplice utilizzare un NSSegmentedCell
separato per controllare la selezione della scheda in un NSTabView
. Tutto ciò di cui hai bisogno è una variabile di istanza a cui possono essere associati entrambi, nel Proprietario del file o in qualsiasi altra classe di controller visualizzata nel file del pennino. Basta mettere qualcosa di simile nel declaraton classe di interfaccia:
@property NSInteger selectedTabIndex;
Poi, nel Associazioni ispettore IB, legano l'indice selezionato sia del NSTabView
e NSSegmentedCell
allo stesso selectedTabIndex
proprietà.
Questo è tutto ciò che devi fare! Non è necessario inizializzare la proprietà a meno che non si desideri che l'indice di tabulazione predefinito selezionato sia diverso da zero. È possibile mantenere le schede o rendere il tableau NSTabView
, funzionerà in entrambi i modi. I controlli rimarranno sincronizzati indipendentemente da quale controllo modifica la selezione.