, : buttonMask 0x2, buttonMask 0x1. NSButton ( NSStatusBarButtons) NSClickGestureRecognizer s, , , , . , , , NSStatusItem view NSView, OS X v10.10 view , " .
, NSView NSStatusItem. NSView -rightMouseUp:, mouse up, , , .
:
#import <Cocoa/Cocoa.h>
@interface TTRightClickDetector : NSView
@property (copy) void (^onRightMouseClicked)(NSEvent *);
@end
#import "TTRightClickDetector.h"
:
@implementation TTRightClickDetector
- (void)rightMouseUp:(NSEvent *)theEvent
{
if(self.onRightMouseClicked)
{
self.onRightMouseClicked(theEvent);
}
}
@end
:
self.statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength];
NSStatusBarButton *button = self.statusItem.button;
button.image = [NSImage imageNamed:@"image"];
button.action = @selector(leftMouseClicked:);
TTRightClickDetector *rightClickDetector = [[TTRightClickDetector alloc] initWithFrame:button.frame];
rightClickDetector.onRightMouseClicked = ^(NSEvent *event){
[self rightMouseClicked];
};
[button addSubview:rightClickDetector];