Как отключить вертикальную прокрутку NSScrollView?Как отключить вертикальную прокрутку NSScrollView?
Я не могу найти быстрое решение в Google.
Благодаря
Как отключить вертикальную прокрутку NSScrollView?Как отключить вертикальную прокрутку NSScrollView?
Я не могу найти быстрое решение в Google.
Благодаря
Вы можете наблюдать содержание смещения в scrollViewDidScroll: и установите й значение значение, которое вы хотели.
Редактировать: Итак, тогда. Вы видели это: Constraining Scrolling?
было интересно, если вы наткнулись
- (void)setHasVerticalScroller:(BOOL)flag;
отключить вертикальную полосу прокрутки?
Вы также можете установить это в Interface Builder.
Он скрывает скроллер, но прокрутка по-прежнему возможна с помощью жестов – aneuryzm
Попробуйте это в NSScrollView подкласса:
- (void)scrollWheel:(NSEvent *)theEvent
{
[super scrollWheel:theEvent];
if ([theEvent deltaY] != 0.0)
{
[[self nextResponder] scrollWheel:theEvent];
}
}
Также вы можете войти его:
NSLog(@"user scrolled %f horizontally and %f vertically", [theEvent deltaX], [theEvent deltaY]);
Отлично! Благодаря!! – Jad
Мне нравится ответ Ивана выше. Однако в моем конкретном случае у меня был вид таблицы (вертикальная прокрутка), где каждая строка содержала представление коллекции (горизонтальная прокрутка).
Когда пользователи пытались прокручивать вверх/вниз, если бы мышка зависала над одним из видов коллекции, они не могли бы прокручивать вверх или вниз.
Чтобы решить эту проблему, я подклассы в NSScrollView, который содержал NSCollectionViews и я перекрытая этот метод со следующим кодом:
override func scrollWheel(with event: NSEvent)
{
if (fabs(Double(event.deltaY)) > fabs(Double(event.deltaX))) {
self.nextResponder?.scrollWheel(with: event);
} else {
super.scrollWheel(with: event);
}
}
Таким образом, он проверяет, является ли пользователь преимущественно прокрутки в одном направлении и обрабатывает его соответственно.
Возможные дублируется: http://stackoverflow.com/questions/12626288/disable-scrolling-in-nstableview – gwdp