nsmenuitemのカスタムビューは、nspopupbuttonの選択を無効にします
-
28-10-2019 - |
質問
anをカスタマイズしたい NSPopUpButton
だから私はanを実装しました CustomMenuItemView
現在、次のコードしかありません(テスト目的で):
- (void)drawRect:(NSRect)dirtyRect
{
[[NSColor redColor] set];
NSRectFill(dirtyRect);
}
今、すべてのために NSMenuItem
に追加します NSMenu
の myPopUpButton.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]];
}
所属していません StackOverflow