NSTextView顶部的光标rect

时间:2011-03-15 17:52:17

标签: objective-c cocoa macos

我通过向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实施而言并不是一个令人满意的解决方案,因此它并不是真正的选项。

1 个答案:

答案 0 :(得分:0)

在设置NSTrackingArea选项的NSScroller中设置NSTrackingMouseMoved

- (void)mouseMoved:(NSEvent *)theEvent {
  [[NSCursor pointingHandCursor] set];
}

诀窍。