NSComboBoxのポップアップボタンを非表示にする方法はありますか?NSComboBoxまたはNSComboBoxCellのドキュメントに何も見つかりません。setButtonBordered:
NSComboBoxにはメソッドがありますが、これは変更ボタンスタイルに変更されます。
非表示にできない場合、少なくとも無効にできますか?
NSComboBoxのポップアップボタンを非表示にする方法はありますか?NSComboBoxまたはNSComboBoxCellのドキュメントに何も見つかりません。setButtonBordered:
NSComboBoxにはメソッドがありますが、これは変更ボタンスタイルに変更されます。
非表示にできない場合、少なくとも無効にできますか?
これは不可能だと思います。ボタンのない NSComboBox は事実上 NSTextField であるため、不要と見なされたと思います。NSComboBoxCell をサブクラス化し、-drawWithFrame:inView: または -drawInteriorWithFrame:inView: をオーバーライドすることで、おそらくこれを行うことができます。
おそらく最も安全な方法は、独自の buttonHidden プロパティを追加し、ObjC ランタイム メソッド class_getMethodImplementation を使用して NSTextField の同じメソッドの IMP を検索し、ボタンが非表示のときにそれを呼び出すことです。スーパーのスーパーを効果的に呼び出しているため、通常のテキスト フィールドの外観が得られます。
コンボ ボックスに項目がない場合、ポップアップ ボタンをクリックしても何も起こりません。
ボタンを無効にしたい場合は、リストを空にすることで制限を回避できるかもしれません。
クリックしても効果がありませんが、ボタンを非表示にしたり、無効として描画したりしません。