Ole*_*rat 2 cocoa objective-c nsevent
我觉得很难在这件事上找到任何正式的东西.
我有一个TextView并覆盖keyDown事件并尝试检测用户是否按下了Ctrl+ Enter.
- (void)keyDown:(NSEvent *)theEvent
{
if([theEvent modifierFlags] & NSControlKeyMask && /* how to check if enter is pressed??? */)
{
NSLog(@"keyDown: ctrl+enter");
if(_delegate)
{
if([_delegate respondsToSelector:@selector(didSomething:)])
{
[_delegate performSelector:@selector(didSomething:) withObject:nil];
}
}
}else
{
[super keyDown:theEvent];
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的东西,但没有任何效果.
任何人?
(我很抱歉问这么一个微不足道的问题,但我已经搜索了一段时间,但没有找到任何东西)
unichar c = [theEvent charactersIgnoringModifiers] characterAtIndex:0];
if(([theEvent modifierFlags] & NSControlKeyMask) && (c == NSCarriageReturnCharacter || c == NSEnterCharacter) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用代理人textView:doCommandBySelector::
- (BOOL)textView:(NSTextView *)aTextView doCommandBySelector:(SEL)aSelector {
// insertLineBreak: is the method sent when a user presses control-return in a text view
if (aSelector == @selector(insertLineBreak:)) {
// do stuff
return YES;
}
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1360 次 |
| 最近记录: |