2009-12-10 17 views
6

स्टेटसबार आइकन पर बाएं या दाएं क्लिक का पता लगाने के लिए, और माउस बटन (ट्रैकपैड) पर क्लिक किए जाने के आधार पर कुछ क्रिया करने के बजाय, कैसे करें?उद्देश्य-सी: NSStatusBar दाएं और बाएं क्लिक

मैं का उपयोग करें:

_statusItem = [[[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength] retain]; 
    [_statusItem setMenu:menu]; 
    [_statusItem setHighlightMode:YES]; 

स्थिति बार आइकन

उत्तर

13

उत्पन्न करने के लिए माउस बटन है कि वर्तमान में दबाया जाता है का पता लगाने के लिए, आपको [NSEvent pressedMouseButtons] उपयोग कर सकते हैं।

स्टेटस बार आइकन पर क्लिक करने के लिए, आप मेनू को प्रदर्शित करने का पता लगा सकते हैं। मेनू खुलने से ठीक पहले, यह एक मेनू भेजता है WillOpen: अपने प्रतिनिधि को संदेश (यदि यह एक है)। तो कुछ इस तरह लागू: द्वारा

[menu setDelegate:self]; 
3

- (void)menuWillOpen:(NSMenu *)menu 
{ 
    NSLog(@"%d",[NSEvent pressedMouseButtons]); 
} 

आप मेनू के लिए प्रतिनिधि निर्धारित करने की आवश्यकता होगी, उदाहरण के लिए मैं एक और समाधान मिल गया है, यहां देखें।

Cocoa: Right Click NSStatusItem

संबंधित मुद्दे