私はこれに何時間も取り組んできましたが、何が悪かったのかわかりません。NSTextViewのサブビューであるボタン用のカスタムカーソルが必要です。追跡領域を追加し、マウスがボタンに入ったときにcursorUpdateメッセージを送信します。
実際、cursorUpdateメソッドは、マウスが追跡領域に入るたびに呼び出されます。ただし、カーソルはIBeamCursorのままです。
何か案は?
Apple Docsのリファレンス:カーソル更新イベントの管理
- (void)cursorUpdate:(NSEvent *)event {
[[NSCursor arrowCursor] set];
}
- (void)myAddTrackingArea {
[self myRemoveTrackingArea];
NSTrackingAreaOptions trackingOptions = NSTrackingCursorUpdate | NSTrackingMouseEnteredAndExited | NSTrackingActiveInKeyWindow;
_trackingArea = [[NSTrackingArea alloc] initWithRect: [self bounds] options: trackingOptions owner: self userInfo: nil];
[self addTrackingArea: _trackingArea];
}
- (void)myRemoveTrackingArea {
if (_trackingArea)
{
[self removeTrackingArea: _trackingArea];
_trackingArea = nil;
}
}