我创建了nstextfield的子类,我覆盖了keydown事件,但我的代码不起作用,然后我覆盖了de keyup事件,代码完美无缺.
我的keydown代码(不起作用):
我的keydown代码(不起作用):
-(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]; } }
我的密钥代码(它的工作原理):
-(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.
解决方法
无法在NSTextField中覆盖keydown事件,如果需要,可以覆盖超级视图的keydown事件,或者可以使用NSTextView或只是覆盖NSTextField中的keyup事件