4

NSComboBoxのポップアップボタンを非表示にする方法はありますか?NSComboBoxまたはNSComboBoxCellのドキュメントに何も見つかりません。setButtonBordered:NSComboBoxにはメソッドがありますが、これは変更ボタンスタイルに変更されます。

非表示にできない場合、少なくとも無効にできますか?

4

2 に答える 2

0

これは不可能だと思います。ボタンのない NSComboBox は事実上 NSTextField であるため、不要と見なされたと思います。NSComboBoxCell をサブクラス化し、-drawWithFrame:inView: または -drawInteriorWithFrame:inView: をオーバーライドすることで、おそらくこれを行うことができます。

おそらく最も安全な方法は、独自の buttonHidden プロパティを追加し、ObjC ランタイム メソッド class_getMethodImplementation を使用して NSTextField の同じメソッドの IMP を検索し、ボタンが非表示のときにそれを呼び出すことです。スーパーのスーパーを効果的に呼び出しているため、通常のテキスト フィールドの外観が得られます。

于 2012-10-17T16:49:23.340 に答える
0

コンボ ボックスに項目がない場合、ポップアップ ボタンをクリックしても何も起こりません。

ボタンを無効にしたい場合は、リストを空にすることで制限を回避できるかもしれません。

クリックしても効果がありませんが、ボタンを非表示にしたり、無効として描画したりしません。

于 2012-01-20T20:09:55.893 に答える