【问题标题】:How can I disable horizontal scrolling for an NSScrollView?如何禁用 NSScrollView 的水平滚动?
【发布时间】:2014-10-26 20:14:50
【问题描述】:

我首先尝试通过设置禁用滚动条:

scrollView!.hasHorizontalScroller = false

这很成功,但我仍然可以使用触控板从左向右滚动。 有没有办法确保完全禁用 NSScrollView 对象的水平滚动?

【问题讨论】:

    标签: cocoa swift nsscrollview


    【解决方案1】:

    即使内容大小正确,我仍然可以使用两指手势水平滚动一点,然后再卡回原位。要解决此问题,您可以设置弹性:

    scrollView.horizontalScrollElasticity = .None
    

    【讨论】:

      【解决方案2】:

      除了@mikepj 的回答之外,我还需要执行以下操作。 将this修改为:

      override func scrollWheel(with event: NSEvent) {
          super.scrollWheel(with: event)
          
          if event.deltaX != 0 {
              super.nextResponder?.scrollWheel(with: event)
          }
      }
      

      这可能是因为我使用的是 NSRulerView。

      【讨论】:

        【解决方案3】:
        var scrollView = UIScrollView(frame:myFrame)
        let scroll = CGSizeMake(myHeight, myFrame.size.width)
        scrollView.contentSize = scroll
        

        固定框架宽度以防止水平滚动。

        【讨论】:

        • 类似的方法奏效了。但是,不允许设置 NSScrollView 的 contentSize (它是一个只读变量),但您的解决方案的一般概念是有效的。谢谢!
        • UIScrollView ≠ NSScrollView
        • 问题是询问 NSScrollView。
        猜你喜欢
        • 1970-01-01
        • 2011-01-24
        • 2010-11-06
        • 2011-04-15
        • 1970-01-01
        • 2012-05-05
        • 2014-05-11
        • 2015-03-26
        • 1970-01-01
        相关资源
        最近更新 更多