2011-09-06 13 views

risposta

12

È necessario disporre di una classe conforme al protocollo NSToolbarDelegate e un'istanza di tale classe essere il delegato della barra degli strumenti. Questo delegato, ad esempio, implementerebbe -toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:, che restituisce un'istanza NSToolbarItem per un dato identificatore, potenzialmente creando quell'elemento su richiesta. In questo modo, stai preparando il delegato a restituire un elemento della barra degli strumenti quando la barra degli strumenti lo richiede per l'elemento corrispondente a un identificatore.

Fatto ciò, è possibile aggiungere una nuova barra degli strumenti alla barra degli strumenti in modo programmatico inviando -[NSToolbar insertItemWithItemIdentifier:atIndex] all'istanza della barra degli strumenti. L'argomento della stringa identificatore deve corrispondere a quello utilizzato nel paragrafo precedente. Se è necessario rimuovere un articolo, inviare -[NSToolbar removeItemAtIndex:] alla barra degli strumenti.

Questo è descritto con esempi nella sezione Adding and Removing Toolbar Items del documento Toolbar Programming Topics for Cocoa.

+6

perché così complicato, Apple? – Lukas

+2

@Lukas perché indietro quando è stato progettato NSToolbar, tecniche come questa erano necessarie per ridurre il consumo di RAM. Questo era uno schema standard e il modo in cui ogni cosa a Cocoa funzionava. Solo le nuove cose non funzionano così. –

Problemi correlati