カーソルがビュー内にあるときにカーソルを変更しようとしています。問題は、カーソルが時々自動的にデフォルトにリセットされることです (たとえば、通知ポップアップが表示される場合)。
class DrawingView : NSView{
override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect)
// Drawing code here.
}
override func updateTrackingAreas() {
let area = NSTrackingArea(rect: self.frame, options: [.cursorUpdate,.activeAlways,.inVisibleRect], owner: self, userInfo: nil)
self.addTrackingArea(area)
}
override func cursorUpdate(with event: NSEvent) {
NSCursor.crosshair.set()
NSApp.keyWindow?.disableCursorRects()
}
}
私の知る限りNSWindow
、disableCursorRects()
他のプロセスによるカーソルの変化を止めることになっています。もしかして私の使い方が悪いのでしょうか?