0

通常のテキストの代わりにボタンの上に単独のアイコンを表示するために、NSPopUpButton と NSPopUpButtonCell のカスタム サブクラスを作成しています。

これを行うために、私はオーバーライドしています

- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView

ボタンセルのサブクラスで、適切なサイズと場所にアイコンを描画します。ユーザーがボタンの上にマウスを置くと、画像を変更したいと思います。私の唯一の問題は、ボタン セルを再表示する方法がわからないことです (drawInterior... を再度呼び出して)。デフォルトでは、ボタンがクリックされたとき、またはフォーカスが別のウィンドウに移動したときにのみ再表示されるようです。setNeedsDisplay:YES を試しましたが、うまくいかないようです。

4

1 に答える 1

2

私がこれを行うために見つけた方法は、への呼び出しを挿入することでした

[self updateCell:self.cell];

セルに表示される画像を変更した直後のNSPopUpButtonサブクラス内。

于 2008-12-11T22:31:28.663 に答える