我有一个NSTableView,在每个表单元格中,都有一个NSTextView。如果光标位于文本视图内部,则用两根手指滚动会导致内部文本视图滚动而不是外部NSTableView。我想要做的是在文本视图到达其内容的末尾时滚动表格视图(有点像this)。我偶然发现this answer建议覆盖wantsForwardedScrollEvents并尝试了以下操作:
class ForwardingScrollView: NSScrollView {
override func wantsForwardedScrollEvents(for axis: NSEvent.GestureAxis) -> Bool {
return true
}
}
但是,这似乎不起作用。当我将文本视图的滚动视图设置为ForwardingScrollView
时,当文本视图 not 到达其内容的末尾时,也会导致滚动停止工作(即,在文本视图中滚动除非您位于内容的结尾,否则不会显示任何内容,在这种情况下,滚动会触发通常的反弹行为。当我将表格视图的滚动视图设置为ForwardingScrollView
时,会出现相同的问题,但表格视图而不是文本视图(尽管如果文本视图和表格视图都位于其内容的末尾,则可以使用) 。将两者都设置为ForwardingScrollView
可以完全中断滚动,无论您身在何处。
我觉得这里缺少了一些非常简单的东西;任何指导将不胜感激。