我有一个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,那么菜单显示在左下角,而不是按钮旁边。
任何指导都将不胜感激。
发布于 2017-04-20 22:42:14
您可以尝试使用-[NSMenu popUpMenuPositioningItem:atLocation:inView:]。此方法不接受NSEvent参数。相反,您可以为其提供一个视图和视图坐标系中的一个位置,并且菜单将自身(或其中的一个项目)定位在该位置上。
但我建议你根本不要使用NSButton。如果您使用的是NSPopUpButton,它将负责在单击鼠标左键时在正确位置显示菜单。
https://stackoverflow.com/questions/43521656
复制相似问题