静的画像を備えたポップアップボタン(Cocoa OSX)
-
28-09-2019 - |
質問
常にA +を画像として表示するポップアップボタンを作成しようとしています。クリックすると、コンテキストメニューがポップアップして、追加するオブジェクトの種類を決定できます。とにかくNSPOPUPBUTTONを使用してこれを行うことはありますか? nspopupbutotnの仕様では、メソッドセットイメージには効果がないことがわかりました。これは、このクラスを使用して機能しないようです。これは正しいです?
解決
はい、の目に見える外観 NSPopUpButton
あなたが望むものには間違っています。
あなたが欲しいのは常連です NSButton
メニューが添付されています。インターフェイスビルダーでタイトルをクリアし、ベゼルを正方形に設定し、センターアイコンのみのバージョンに、画像を NSAddTemplate
.
次に、aを作成します NSPopUpButton
, 、それを「プルダウン」に設定し、隠して、そのサイズをnsbuttonの底に設定します。
最後に、接続します performClick:
の中に NSButton
に performClick:
に NSPopUpButton
.
ボタンのクリックホールドは処理されません。そのためには、(非描画)を使用するためにいくつかのコードを書く必要があります NSPopUpButtonCell
.
他のヒント
nspopupbuttonを使用してみませんか? 2つのボタンを使用して1つのタスクを実行することは正しくないように見えますが、前述のように、ボタンを保持することに関して通常の方法で動作しません。
ポップアップボタンを動作させるには...プルダウンタイプに設定します。ポップアップボタン自体に名前や画像を与えないでください。ポップアップボタンに名前や画像がない場合、最初のメニュー項目がボタンのタイトルになります。メニュー項目には画像を使用できるため、最初のメニュー項目にタイトルを付けないでください。画像を設定するだけで、ポップアップボタンに表示される画像です。メニュー項目の残りの部分については、最初のメニュー項目の後に通常どおりに追加するだけです。コード内のメニュー項目をプログラム的に変更する場合は、最初のメニュー項目をタクトで残しておくと、すべてが問題ないことに注意してください。私はこれを問題なくいくつかのアプリケーションで行います。
重要なのは使用することです NSPopUpButtonCell's
setUsesItemFromMenu
:。 Appleドキュメントには、これを使用する方法の例が含まれています。
ポップアップボタンは、それに関連付けられているメニューの最初のメニューアイテムの画像とタイトルを取得します。そのため、最初のメニュー項目としてポップアップボタンとして表示したい画像を含めてから、その可視性を非表示にすることをお勧めします。
まだ明確でない場合は、次のビデオを1回実行してください。
このチュートリアルは、インターフェイスビルダーのnstoolbar用のドロップダウンメニューを備えたツールバーアイテム(nstoolbaritem)を作成する方法を示しています。 リンク