【发布时间】:2011-05-06 17:28:16
【问题描述】:
我创建了 nstextfield 的子类并覆盖了 keydown 事件但我的代码不起作用,然后我覆盖了 de keyup 事件并且代码完美运行。 我的按键代码(不起作用):
-(void)keyDown:(NSEvent *)event {
NSLog(@"Key released: %hi", [event keyCode]);
if ([event keyCode]==125){
[[self window] selectKeyViewFollowingView:self];
}
if ([event keyCode]==126){
[[self window] selectKeyViewPrecedingView:self];
}
}
我的keyup代码(有效):
-(void)keyUp:(NSEvent*)event
{if ([event keyCode]==125){
[[self window] selectKeyViewFollowingView:self];
}
if ([event keyCode]==126){
[[self window] selectKeyViewPrecedingView:self];
}
if ([event keyCode]==36){
[[self window] selectKeyViewFollowingView:self];
}
}
我看不出我的 keydown 代码有什么问题。任何建议都会被接受
编辑: 我读过你必须继承 NSTextView 而不是 NSTextField。
【问题讨论】:
-
请提供描述“不起作用”的详细信息。
-
它执行 NSLog 吗?它被调用了吗?这些是同一类的完全相同的实例,其中一个有效,一个无效?
-
您在这里混淆了术语。您没有“覆盖”该事件,您只是在听它。如果你要覆盖它,你会让它做一些它原本打算做的事情。
-
好的,但这对我没有帮助
标签: objective-c cocoa nstextfield