2011-09-06 103 views

回答

12

您需要有一個符合NSToolbarDelegate協議的類,並讓該類的實例成爲工具欄的代表。例如,這個代表可以實現-toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:,它會爲給定的標識符返回一個NSToolbarItem實例,可能會按需創建該項目。通過這樣做,當工具欄要求它爲與標識符相對應的項目時,您準備委託來返回工具欄項目。

完成該操作後,您可以通過向工具欄實例發送-[NSToolbar insertItemWithItemIdentifier:atIndex]以編程方式將新的工具欄項添加到工具欄中。標識符字符串參數應該與上面段落中使用的參數匹配。如果您需要刪除一個項目,請將-[NSToolbar removeItemAtIndex:]發送到工具欄。

這是用Toolbar Programming Topics for Cocoa文檔的Adding and Removing Toolbar Items部分中的示例來描述的。

+6

爲什麼這麼複雜,蘋果? – Lukas

+2

@Lukas因爲當NSToolbar被設計出來時,像這樣的技術對於減少RAM的消耗是必要的。這是一個標準模式,以及Cocoa中的_everything_如何用於工作。只有新東西不能像這樣工作。 –

相關問題