Как я могу отключить горизонтальную прокрутку для NSScrollView?

Сначала я попытался отключить полосу прокрутки, установив:

scrollView!.hasHorizontalScroller = false

и это успешно сработало, но я все еще мог прокручивать слева направо, используя трекпад. Есть ли способ убедиться, что горизонтальная прокрутка полностью отключена для объекта NSScrollView?

3 ответа

Решение
var scrollView = UIScrollView(frame:myFrame)
let scroll = CGSizeMake(myHeight, myFrame.size.width)
scrollView.contentSize = scroll

Исправляет ширину рамки, чтобы предотвратить горизонтальную прокрутку.

Даже при правильном размере содержимого я все еще мог использовать жесты двумя пальцами для горизонтальной прокрутки, прежде чем он снова встанет на место. Чтобы это исправить, вы можете установить эластичность:

scrollView.horizontalScrollElasticity = .None

В дополнение к ответу @mikepj мне также нужно было сделать следующее. Изменение этого , чтобы стать:

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

Это может быть потому, что я использовал NSRulerView.

Другие вопросы по тегам