Swift. Как узнать, когда NSScrollView начинает прокручиваться?

Есть ли в Swift способ узнать, когда NSScrollView начал прокрутку.


person ikhaliq15    schedule 06.07.2016    source источник


Ответы (1)


Вы можете использовать наблюдателя, который слушает NSScrollViewWillStartLiveScrollNotification [1]

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(YourClass.YourFunctionName), name: NSScrollViewWillStartLiveScrollNotification, object: nil)

Просто поместите свою функцию в #Selector()

person Emptyless    schedule 06.07.2016
comment
Я получаю 2 ошибки: ожидаемое выражение в списке выражений и ожидаемый разделитель ','. Это мое заявление: NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector("resetScroller"), name: NSScrollViewWillStartLiveScrollNotification, object: nil). XCode хочет добавить запятую между "селектором:" и "#селектором()". - person ikhaliq15; 06.07.2016
comment
#selector — это селектор типа objc c. Если у вас есть функция doSomething() в классе ViewController, вы используете #selector(ViewController.doSomething(:)) - person Emptyless; 06.07.2016
comment
Я обнаружил, что вместо #selector используйте Selector(functionName). - person ikhaliq15; 08.07.2016
comment
#selector является новым, начиная с версии swift 2.2, и обеспечивает защиту от опечаток, имена функций на основе строк станут устаревшими: swift.org/blog/swift-2-2-new-features - person Emptyless; 08.07.2016
comment
Это не работает, когда пользователь прокручивает колесико мыши. - person Ely; 15.10.2020