Como posso mostrar o NSMenu no cursor do mouse?

Estou trabalhando em um aplicativo em que quero mostrar um "menu de contexto" do NSMenu próximo ao local atual do mouse. Neste ponto, eu sei como acionar o comando do WebView para mostrar o menu de contexto; simplesmente não consigo exibir o menu no local correto na tela. Parece que minhas coordenadas estão invertidas verticalmente do que eu preciso. Parece um problema tão simples, mas passei um bom tempo tentando obter uma solução de "melhores práticas". Preciso descobrir em qual tela o mouse está e calcular a coordenada y manualment

Aqui está meu código realmente simples que se aproxima:

- (IBAction)showMenu:(id)sender
{
    CGEventRef ourEvent = CGEventCreate(NULL);
    CGPoint point = CGEventGetLocation(ourEvent);
    NSPoint wp = {0,0};
    wp = [self.window convertScreenToBase:point];
    NSLog(@"Location? x= %f, y = %f", (float)point.x, (float)point.y);
    NSLog(@"Location? x= %f, y = %f", (float)wp.x, (float)wp.y);

    NSEvent *event = [NSEvent mouseEventWithType:NSLeftMouseUp location:CGPointMake(wp.x, wp.y) modifierFlags:0 timestamp:NSTimeIntervalSince1970 windowNumber:[_window windowNumber]  context:nil eventNumber:0 clickCount:0 pressure:0.1];

    //NSEvent *event = [NSEvent eventWithCGEvent:ourEvent];


    NSMenu *theMenu = [[NSMenu alloc] initWithTitle:@"Contextual Menu"];

    [theMenu insertItemWithTitle:@"Item 1" action:@selector(beep:) keyEquivalent:@"" atIndex:0];
    [theMenu insertItemWithTitle:@"Item 2" action:@selector(beep:) keyEquivalent:@"" atIndex:1];

    [NSMenu popUpContextMenu:theMenu withEvent:event forView:nil];
}

lguém pode me fornecer um código de exemplo para a maneira mais natural de fazer iss

questionAnswers(2)

yourAnswerToTheQuestion