我通过向NSScrollView添加一个knob子视图实现了一个iOS风格的NSScrollView。实现工作正常,除了一件事 - 光标在旋钮视图上改变。
我正在使用NSView
s -resetCursorRects
方法来设置光标矩形。
- (void)resetCursorRects {
[self addCursorRect:self.knobFrame cursor:[NSCursor pointingHandCursor]];
}
这也有效,但是当我越过光标矩形边界时,Cursor会立即重置为IBeam
样式。
我该怎样防止这种情况?它是否与旋钮视图不透明有关?
更新0:
我还尝试使用普通NSScroller
实现它,并强制滚动条在滚动视图的NSClipView
方法中覆盖-tile
,但无论放在哪个视图上,它似乎都是NSTextView
的顶部始终强制执行IBeam
游标类型。
更新1:
我发现此mailing list条目建议覆盖NSTextView
s -mouseMoved
,但由于这对于强大的自定义NSScrollView
实施而言并不是一个令人满意的解决方案,因此它并不是真正的选项。
答案 0 :(得分:0)
在设置NSTrackingArea
选项的NSScroller
中设置NSTrackingMouseMoved
- (void)mouseMoved:(NSEvent *)theEvent {
[[NSCursor pointingHandCursor] set];
}
诀窍。