Как сделать прокрутку NSScrollView медленнее?

Используя колесо мыши (или прокрутку трекпада), мой пользовательский вид прокрутки прокручивается слишком быстро для своих целей в приложении. Есть ли способ уменьшить количество прокруток каждый раз, когда пользователь прокручивает с помощью трекпада или колеса?


person Vervious    schedule 20.06.2012    source источник


Ответы (1)


Не могли бы вы переопределить

- (void)scrollWheel:(NSEvent *)theEvent

в вашем пользовательском NSScrollView, чтобы изменить поведение прокрутки в ответ на колесико мыши?

person Jeff Hellman    schedule 20.06.2012
comment
Я не уверен, как именно, но я рассматриваю это как вариант. Теоретически я мог бы вызвать super с измененным NSEvent, но я не уверен, как воссоздать NSEvent. (Я также не хочу менять какие-либо другие функции по умолчанию) - person Vervious; 21.06.2012
comment
Я не думаю, что вы захотите вызывать super с измененным событием - я думаю, вы захотите вручную обрабатывать прокрутку вашего NSScrollView внутри этого переопределенного метода. - person Jeff Hellman; 21.06.2012
comment
Вам следует обратить внимание на свойства documentVisibleRect и contentSize вашего прокрутки. У Apple есть полезная информация о ручной прокрутке по адресу: developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ - person Jeff Hellman; 21.06.2012
comment
Что ж, я решил, что более медленная прокрутка не стоит написания собственной реализации прокрутки, но я все равно приму ваш ответ, потому что это казалось правильным, не имея других способов. - person Vervious; 24.06.2012
comment
@ jeff-hellman Почему свойство horizontalLineScroll и друзья класса NSScrollView здесь не помогут? - person Sam; 28.12.2014
comment
@Sam: в моем тестировании, verticalLineScroll, похоже, не влияет на то, насколько сильно вид прокручивается с помощью колеса прокрутки. Я новичок в NSScrollView, поэтому могу что-то делать не так. - person Joe Strout; 20.01.2015