nib で定義されたツールバーでは、ツールバー デリゲートのtoolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:
メソッドが呼び出されないことがわかりました。では、カスタム アイテムの 1 つがカスタマイズ パレットに入っているかどうかは、どうすればわかりますか? ドキュメントによると、ペン先の場合、そのメソッドを使用して「機能を拡張」することはできますが、拡張は行われません。
更新:デリゲートではなくサブクラスでそのメソッドを実装しようとしました。カスタマイズシートを設定するときだけ呼び出されますが、奇妙なことにtoolbar
、itemIdentifier
すべての項目に対して nil です。
更新 2:カスタム ビューでオーバーライドviewWillMoveToWindow:
し、新しいウィンドウにツールバーがあるかどうかを確認することで、これを回避しています。ツールバーのないウィンドウとツールバーのウィンドウの間でビューが前後に移動するのを見ています。これは、アイテムが作成されたときにのみ呼び出されるデリゲート メソッドよりも、実際にはこれがより良い解決策である可能性があることを示唆しています。