NSMenu位置错误popUpContextMenu:withEvent

时间:2013-07-28 10:24:14

标签: cocoa

当您单击按钮时,代码应该显示一个上下文菜单但是当菜单出现时,它总是显示在右侧和更高的位置,然后它应该是,而不是在单击按钮(或鼠标以后)的位置点击时它就在按钮上。

- (IBAction)menu:(id)sender {
    [NSMenu popUpContextMenu:menu withEvent:[NSEvent mouseEventWithType:NSLeftMouseUp location:[NSEvent mouseLocation] modifierFlags:0 timestamp:0 windowNumber:[_window windowNumber] context:nil eventNumber:0 clickCount:0 pressure:0] forView:menuView];
}

注意:该方法需要很长时间才能完全放入标题

1 个答案:

答案 0 :(得分:0)

您需要使用[_window convertScreenToBase:[NSEvent mouseLocation]],而不是[NSEvent mouseLocation]