【问题标题】:NSScrollView one line at a timeNSScrollView 一次一行
【发布时间】:2014-12-17 05:48:28
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: objective-c cocoa nsscrollview


    【解决方案1】:

    你可以覆盖

    - (void)scrollWheel:(NSEvent *)theEvent
    

    ,像 setLineScroll 方法一样计算行高,然后手动滚动到新的滚动位置。

    你可能需要这样的东西

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 1970-01-01
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多