I'm using the following code to detect the return key in a text view. How do you detect if the shift key is being pressed too?

- (BOOL)textView:(NSTextView *)textView doCommandBySelector:(SEL)commandSelector
{
    if(commandSelector == @selector(insertNewline:))
    {
        // return key
        return YES;
    }

    return NO;
}
有帮助吗?

解决方案

subclass NSTextView and override flagsChanged with this

-(void) flagsChanged:(NSEvent *)theEvent {

    if ([theEvent modifierFlags] & NSShiftKeyMask && [theEvent modifierFlags] & NSCommandKeyMask) {

       NSLog(@"pressed");
    }
}

其他提示

Swift 4

override func flagsChanged(with event: NSEvent) {

    if event.modifierFlags.contains(.shift) {
        print("shift!")
    }

    super.flagsChanged(with: event)
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top