我有一个NSTableView
,每行都包含一个按钮。我还有一个与表相关的菜单。
问题是:我想在点击按钮时显示菜单。如果可能,请不要在右键单击显示。
行动方法是:
- (IBAction)showMenu:(NSButton *)button {
NSLog(@"show menu");
NSMenu *menu = [self.tableView menu];
NSEvent *event = [[NSEvent alloc] init];
[NSMenu popUpContextMenu:menu
withEvent:event
forView:button];
}
此处如何处理event
?如果我使用nil
,则菜单显示在左下角,而不是按钮旁边。
任何指导都将不胜感激。
答案 0 :(得分:0)
您可以尝试使用-[NSMenu popUpMenuPositioningItem:atLocation:inView:]
。此方法不会采用NSButton
参数。相反,您在视图的坐标系中给它一个视图和一个位置,并且菜单将自己(或其中一个项目)定位在该位置上。
但我建议你根本不使用line-height: 1;
。如果您使用NSPopUpButton
,则会在左键单击时在正确的位置显示菜单。