addNewItem:(NSToolbarItem *)item
という名前のメソッドを探しています。プログラムで作成したアイテムをツールバーに追加できますが、見つけられませんでした。ユーザーが何かをダウンロードしたときにSafariのように、ユーザーがクリックするとポップオーバーを表示するアイテムを追加したいと思います。プログラムで新しいNSToolbarItemを既存のツールバーに追加する方法はありますか?
6
A
答えて
12
NSToolbarDelegate
プロトコルに準拠し、そのクラスのインスタンスをツールバーの代理人にするクラスが必要です。このデリゲートは、たとえば-toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:
を実装し、特定の識別子に対してNSToolbarItem
インスタンスを返します。要求に応じてそのアイテムを作成する可能性があります。これにより、ツールバーが識別子に対応する項目を要求すると、ツールバー項目を返すようにデリゲートを準備します。
これを実行すると、-[NSToolbar insertItemWithItemIdentifier:atIndex]
をツールバーインスタンスに送信することで、ツールバーに新しいツールバーアイテムをプログラムで追加できます。識別子文字列の引数は、上記の段落で使用されたものと一致する必要があります。アイテムを削除する必要がある場合は、-[NSToolbar removeItemAtIndex:]
をツールバーに送信してください。
これは、Toolbar Programming Topics for Cocoa文書のAdding and Removing Toolbar Itemsセクションの例で説明されています。
関連する問題
- 1. 既存のレールデータベースに新しいシードデータを追加する方法
- 2. プロパティファイルの既存のデータに新しいデータを追加する方法は?
- 3. VS2010プロジェクトの既存アイテムをプログラムで追加しますか?
- 4. 既存のDataTableに値を持つ新しい列を追加する方法?
- 5. Powerbuilderの既存のデータウィンドウに新しい列を追加する方法
- 6. jarファイルの既存のクラスに新しいJavaクラスを追加する方法
- 7. sharepoint:既存のコンテンツタイプに既存のサイト列を追加します。プログラム的に
- 8. 新しいmavenモジュールを既存のmavenプロジェクトに追加する方法
- 9. 既存の子ノードに新しい子ノードを追加する方法
- 10. 既存のazureテーブルストレージに新しい列を追加する方法
- 11. ページにプログラムでコントロールをページに追加する方法はありますか?
- 12. 既存のプロジェクトの新しいデバイスにプロビジョニングプロファイルを追加する
- 13. コマンドラインでmysqlサービス用の既存のmy.iniファイルにエントリを追加する方法はありますか?
- 14. OpenXML既存のExcelファイルに新しい行を追加する
- 15. ASP.NET既存のフォームに新しいフィールドを追加する
- 16. 既存のGitリポジトリに新しいSubversionリモートを追加する
- 17. 既存のmysqlユーザに新しいホストエントリを追加する
- 18. 既存のテーブルに新しい行を追加する
- 19. 既存のJSONファイルに新しいデータを追加する
- 20. 既存のモデルに新しいhas_many関係を追加する
- 21. 既存のAzureアプリケーションゲートウェイに新しいリスナーを追加する
- 22. 既存のDynamoDBテーブルに新しいローカルセカンダリインデックスを追加する
- 23. UI要素をプログラムで既存のnibファイルに追加する方法
- 24. プログラムでSystem.Drawing.Imageにテキストを追加する方法はありますか?
- 25. 起動スクリプトをローカルグループポリシーにプログラムで追加する方法はありますか?
- 26. Visual Studioツールボックスにカスタムコンポーネントをプログラムで追加する方法はありますか。
- 27. 新しいデバイス開発者用ポータルを追加して既存のアドホックディストリビューションに追加する方法
- 28. Pythonで既存のgnome canvas bpathに追加する方法はありますか?
- 29. 既存のアプリに新しいAdWhirl広告ネットワークを追加できますか?
- 30. ツールバーにtextFieldを追加する方法
なぜ複雑な、アップル? – Lukas
@ Lukas NSToolbarが設計されたときには、このような手法がRAM消費を減らすために必要でした。これは標準的なパターンであり、ココアではどのように働いていたのですか?このように新しいものだけが動作しません。 –