Skip to content

Commit dd109ec

Browse files
committed
Use Crosshair Cursor
1 parent 4f78bc9 commit dd109ec

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

Sources/CodeEditTextView/TextView/TextView+FirstResponder.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,10 @@ extension TextView {
5151
open override func resetCursorRects() {
5252
super.resetCursorRects()
5353
if isSelectable {
54-
addCursorRect(visibleRect, cursor: .iBeam)
54+
addCursorRect(
55+
visibleRect,
56+
cursor: isOptionPressed ? .crosshair : .iBeam
57+
)
5558
}
5659
}
5760
}

Sources/CodeEditTextView/TextView/TextView+KeyDown.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,14 @@ extension TextView {
4747

4848
return false
4949
}
50+
51+
override public func flagsChanged(with event: NSEvent) {
52+
super.flagsChanged(with: event)
53+
54+
let modifierFlags = event.modifierFlags.intersection(.deviceIndependentFlagsMask)
55+
if modifierFlags.contains(.option) != isOptionPressed {
56+
isOptionPressed = modifierFlags.contains(.option)
57+
resetCursorRects()
58+
}
59+
}
5060
}

Sources/CodeEditTextView/TextView/TextView.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,8 @@ public class TextView: NSView, NSTextContent {
269269
var draggingCursorView: NSView?
270270
var isDragging: Bool = false
271271

272+
var isOptionPressed: Bool = false
273+
272274
private var fontCharWidth: CGFloat {
273275
(" " as NSString).size(withAttributes: [.font: font]).width
274276
}

0 commit comments

Comments
 (0)