2011-12-09 36 views
3

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

私がそれを隠すことができない場合は、少なくともそれを無効にすることはできますか?

+0

私はあなたのために働くかもしれない下記の回避策を掲載しました。私のアプリケーションではまだそれを隠すことができたいと思うので、私は他の答えを聞いてうれしいです。 – paulmelnikow

答えて

0

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

ボタンを無効にする場合は、リストを空にしてこの制限を回避できます。

クリックすると効果はありませんが、ボタンを隠すことも、無効にすることもありません。

+0

実際には、コンボボックスのボタンをクリックすると空のリストボックスが表示されます。 – adib

0

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

もっとも安全な方法は、独自のbuttonHiddenプロパティを追加し、ObjCランタイムメソッドclass_getMethodImplementationを使用して、NSTextFieldの同じメソッドのIMPを検索し、ボタンが非表示のときに呼び出します。あなたは事実スーパーのスーパーを呼び出すだろう、したがって、あなたは通常のテキストフィールドの外観を得るだろう。

関連する問題