質問

anをカスタマイズしたい NSPopUpButton だから私はanを実装しました CustomMenuItemView 現在、次のコードしかありません(テスト目的で):

- (void)drawRect:(NSRect)dirtyRect
{
    [[NSColor redColor] set];
    NSRectFill(dirtyRect);
}

今、すべてのために NSMenuItem に追加します NSMenumyPopUpButton.menu カスタムビューにビューを設定します:

NSMenuItem *menuItem = [[NSMenuItem alloc] initWithTitle:@"Some title" action:NULL keyEquivalent:@""];
menuItem.view = [[CustomMenuItemView alloc] initWithFrame:NSMakeRect(0, 0, 100, 25)];

プログラムを実行してポップアップボタンを開くと、Menuitemの選択が無効に見えます(つまり、クリックすると何も起こりません)。

私はそれが実際に無効になっていないと推測しています。もうイベントに応答しなくなりました。カスタムビューにイベント処理を追加する必要がありますか?もしそうなら、どうですか?

役に立ちましたか?

解決

追加することで問題を解決しました mouseUp 私への方法 CustomMenuItemView:

- (void)mouseUp:(NSEvent*) event
{
    NSMenu *menu = self.enclosingMenuItem.menu;
    [menu cancelTracking];
    [menu performActionForItemAtIndex:[menu indexOfItem:self.enclosingMenuItem]];
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top