Я реализовал стиль NSScrollView в стиле iOS, добавив подпредставление регулятора в NSScrollView. Реализация работает просто отлично, за исключением одного - изменение курсора на виде ручки.
Я использую NSView
s -resetCursorRects
метод для установки прямоугольника курсора.
- (void)resetCursorRects {
[self addCursorRect:self.knobFrame cursor:[NSCursor pointingHandCursor]];
}
Это тоже работает, но курсор сразу сбрасывается в стиль IBeam
, как только я пересекаю границу курсора.
Как я могу предотвратить это? Это как-то связано с непрозрачностью вида ручки?
ОБНОВЛЕНИЕ 0:
Я также пытался реализовать его с помощью обычного NSScroller
и заставлять скроллер накладывать NSClipView
в методе -tile
представления прокрутки, но, похоже, независимо от того, какое представление расположено поверх NSTextView
он всегда применяет тип курсора IBeam
.
ОБНОВЛЕНИЕ 1:
Я нашел эту запись в списке рассылки , которая предлагает переопределить NSTextView
s -mouseMoved
, но, поскольку это не является удовлетворительным решением для надежной пользовательской реализации NSScrollView
, на самом деле это не вариант.