クリックされたときにカスタムセル内のNSPopUpButtonCellがポップアップ表示されません

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

質問

私はNSImageCell、いくつかのNSTextFieldCells、およびNSPopUpButtonCellでNSCellののカスタムサブクラスを作成しました。

私が使用してポップアップの細胞を初期化しています:

    myPopUpCell = [[NSPopUpButtonCell alloc] init];
    [myPopUpCell setBordered:NO];
    [myPopUpCell setAutoenablesItems:NO];
    [myPopUpCell addItemsWithTitles:[NSArray arrayWithObjects:@"Item1", @"Item2", @"Item3"]];

そしてdrawInteriorWithFrame:inView:でそれを描く

すべては私のアプリを実行中にポップアップセルをクリックすると、セルがポップアップしないことを除いて、偉大な動作しているようです。間違っているかもしれないものについての任意の提案ですか?

役に立ちましたか?

解決

drawInteriorWithFrame:inView:のポップアップボタン電池がちょうどそれをするつもりされて描画。それを描きませんが、何も。クリックイベントを処理するあなたはマウスイベントを解釈するためにカスタムセル内のいくつかの作業を行うために必要があるとしているので、図面には無関係である、と彼らはあなたがポップアップボタンの使用しているフレームの中にいる場合は、それらを渡しますボタン電池へ。このよう–trackMouse:inRect:ofView:untilMouseUp:としてマウスを追跡下NSCellのドキュメントに記載されているメソッドを、サブクラス化することで起動し、正しくボタン電池を作用させるために必要なのかを把握することができるようする必要があります。

あなたが実際にそれが簡単にタイトル文字列を自分で描くために見つけて、ちょうどNSMenuの+popUpContextMenu:withEvent:forView:を使用することができますをやっている内容に応じています。

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