繁体   English   中英

覆盖keyDown:在NSTableView类别中禁用箭头键处理

[英]Overriding keyDown: in an NSTableView category disables arrow key handling

我有一个NSTableView ,它的默认行为有一些问题。

如果我重写了类别中的keyDown:方法,如下所示:

- (void) keyDown:(NSEvent *)event {
    [super keyDown:event];
}

我无法再使用键盘上的箭头键更改行选择。 这是为什么?

在NSTableView的类别中。

NSTableView类别中, super是指NSTableView的超类( NSControl ),而不是像 NSTableView那样是指NSTableView NSControl事件传递给keyDown:NSControl版本,该版本对表视图一无所知,并且无法以所需方式处理箭头键。

如果您覆盖类别中的方法,则无法调用原始方法。 在框架类上执行此操作绝不是一个好主意(您的源不可用)。 使用子类。

cf. 在目标C类别中使用超级吗? 并且在类别中调用super是否与在子类中调用super相同?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM