title: NSButton with Mouse Down/Up and Key Down/Up
body: <p>I need a NSButton that gives me 2 events, one when the button is pressed down (NSOnState) and one when the button is released (NSOffState) and so far i've got it working with the mouse (intercepting the mouseDown: event). But using a keyboard shortcut doesn't work, it fires a NSOnState once and then after a delay really often. Is there any way to get a button that fires NSOnState when pressed and NSOffState when released?</p>
  
  <p>My current subclass of NSButton looks like this and unfortunately works using a delegate:</p>
  
  <pre><code>-(void)awakeFromNib {
      [self setTarget:self];
      [self setAction:@selector(buttonAction:)];
  }
  
  -(void)mouseDown:(NSEvent *)theEvent {
      [_delegate button:self isPressed:YES];
      [super mouseDown:theEvent];
  }
  
  -(void)buttonAction:(id)sender {
      [_delegate button:self isPressed:NO];
  }
  </code></pre>