I made a little cocoa app that brings up an IKPictureTaker and saves a picture to a file if you press the set button. Currently, if you press esc or Command . the window picture taker will close. Is there a way to disable this behavior?
3 Answers
2
votes
Another approach is to hide the close and Cancel buttons, so they can't be pressed:
IKPictureTaker *taker = [IKPictureTaker pictureTaker]; [taker setStyleMask:0]; //disable close button for(NSView *aView in [[taker contentView] subviews]){ if([aView isKindOfClass:[NSButton class]]){ NSButton *aButton = (NSButton*)aView; if([aButton action] == @selector(cancelButton:)) [aButton setHidden:YES]; } }
2
votes
You need to insert yourself somewhere in the responder chain in time to catch the escape key down event, and disable it. You may have to subclass IKPictureTaker
. The snippet below should help you (source).
- (void)keyDown:(NSEvent *)event {
if ([event keyCode] == 53) {
NSLog(@"Escape has been pressed");
}
}