NSScrollView一次一行

时间:2014-12-17 05:48:28

标签: objective-c cocoa nsscrollview

我目前正在使用Cocoa和Objective-C制作一个简单的文本编辑程序,我尝试使用任何类型的滚动一次滚动一行。

我可以通过将setLineScroll参数设置为NSScrollView的当前行高来使其仅滚动一行。这仅在您按滚动条上的箭头时控制它。我想强制它只用箭头和滚轮/跟踪垫手势一次滚动一行。

如果我将NSScrollView子类化,我可以使用NSScrollView的moveUp和moveDown方法来控制它吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以覆盖

- (void)scrollWheel:(NSEvent *)theEvent

,计算行高,就像你为setLineScroll方法所做的那样,并手动滚动到新的滚动位置。

你可能需要这样的东西

NSPoint currentPoint=[[scrollView contentView] bounds].origin;
currentPoint.y += _lineHeight
[[scrollView documentView] scrollPoint:currentPoint];

标志将取决于移动的方向。