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