ane*_*yzm 0 cocoa objective-c event-handling nstableview objective-c-category
我有一个NSTableView我的默认行为有一些问题.
如果我keyDown:在类别中重写了方法,如下所示:
- (void) keyDown:(NSEvent *)event {
[super keyDown:event];
}
Run Code Online (Sandbox Code Playgroud)
我无法再使用键盘箭头键更改行选择.这是为什么?
在NSTableView类别中.
在一个类别中NSTableView,super指NSTableView的是超类(NSControl),而不是NSTableView它在子类中的含义.您将事件传递给NSControl版本keyDown:,该版本对表视图一无所知,无法按您希望的方式处理箭头键.
如果覆盖类别中的方法,则无法调用原始方法.在框架类(其源代码不可用)上执行此操作几乎绝不是一个好主意.使用子类.
参看 在Objective C类别中使用Super?并且在类别中调用super与在子类中调用它相同吗?
| 归档时间: |
|
| 查看次数: |
1073 次 |
| 最近记录: |