मैं एक ऐप पर काम कर रहा हूं जहां मैं वर्तमान माउस स्थान के बगल में एक एनएसएमएनयू "संदर्भ मेनू" दिखाना चाहता हूं। इस बिंदु पर, मुझे पता है कि संदर्भ मेनू दिखाने के लिए WebView से कमांड को कैसे ट्रिगर करना है, मुझे लगता है कि स्क्रीन पर सही प्लेसमेंट पर मेनू दिखाना प्रतीत नहीं होता है। ऐसा लगता है कि मेरे निर्देशांक जो मुझे चाहिए उससे लंबवत रूप से उलटा हुआ है। ऐसा लगता है कि इस तरह की एक साधारण समस्या है, लेकिन मैंने "सर्वोत्तम प्रथाओं" समाधान को सर्वोत्तम बनाने का प्रयास करने में काफी समय लगाया है। क्या मुझे यह पता लगाने की ज़रूरत है कि माउस किस स्क्रीन में है और मैन्युअल रूप से वाई समन्वय की गणना करता है?मैं माउस कर्सर पर एनएसएमएनयू कैसे दिखा सकता हूं?
- (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];
}
कोई सबसे प्राकृतिक तरीका यह कर पाने के लिए मुझे नमूना कोड प्रदान करें सकते हैं:
यहाँ मेरी बहुत आसान कोड है कि करीब हो जाता है।
मैंने सोचा था कि मुझे लगता है कि कोशिश की। मेरे चेहरे के ठीक सामने। धन्यवाद! – David