どのように私は自分自身を再表示するNSPopUpButtonCellを強制できますか?

StackOverflow https://stackoverflow.com/questions/360856

質問

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

これを行うには、私は

オーバーライドしています
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView

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

役に立ちましたか?

解決

私はこれを行うことが見いださ方法はへの呼び出しを挿入することでした。

[self updateCell:self.cell];

私のNSPopUpButtonサブクラスのすぐ内側に任意の時点の後に私は、セルによって表示される画像を変更します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top