画像として常に + を表示するポップアップ ボタンを作成しようとしています。クリックすると、追加するオブジェクトの種類を決定できるコンテキスト メニューがポップアップ表示されます。NSPopupButton を使用してこれを行う方法はありますか? NSPopupButotn の仕様で、メソッド SetImage は効果がないことがわかったので、このクラスを使用してこれが機能しない可能性が高いようです。これは正しいです?
4 に答える
NSPopupButtonを使用しないのはなぜですか?2つのボタンを使用して1つのタスクを実行することは正しくないように思われます。また、前述のように、ボタンを押し続けることに関して通常の方法で動作しません。
ポップアップボタンを好きなように機能させるには...プルダウンタイプに設定します。ポップアップボタン自体に名前や画像を付けないでください。ポップアップボタンに名前や画像がない場合は、最初のメニュー項目がボタンのタイトルになります。メニュー項目には画像を含めることができるため、最初のメニュー項目にタイトルを付けるのではなく、画像を設定するだけで、ポップアップボタンに表示される画像になります。残りのメニュー項目については、最初のメニュー項目の後に通常どおり追加してください。プログラムでコード内のメニュー項目を変更する場合は、最初のメニュー項目をそのままにしておくと、すべて問題がないことに注意してください。私はこれをいくつかのアプリケーションで問題なく実行しています。
重要なのは、: を使用することNSPopUpButtonCell's
setUsesItemFromMenu
です。Apple ドキュメントには、これを使用する方法の例が含まれています。
はい、の目に見える外観はNSPopUpButton
あなたが望むものに対して間違っています。
欲しいのはNSButton
メニュー付きのレギュラーです。Interface Builderでタイトルをクリアし、ベゼルを正方形に、位置を中央のアイコンのみのバージョンに、画像をに設定しNSAddTemplate
ます。
次に、を作成しNSPopUpButton
、「プルダウン」に設定して非表示にし、NSButtonの下部に合わせてサイズを調整します。
最後に、のに接続performClick:
します。NSButton
performClick:
NSPopUpButton
それはボタンのクリックホールドを処理しません。そのためには、(非描画)を使用するためのコードを作成する必要がありますNSPopUpButtonCell
。