У меня есть NSTextField
, который находится внутри NSTableCelView
подкласса.Я хочу изменить цвет курсора, потому что сейчас курсор совпадает с фоном.
В другом месте моего приложения я изменил цвет курсора с удобным расширением, например:
extension NSTextField {
public func cursorColor(_ cursorColor: NSColor) {
let fieldEditor = self.window?.fieldEditor(true, for: self) as! NSTextView
fieldEditor.insertionPointColor = cursorColor
}
}
Я поместил этот метод внутри viewWillDraw()
в моем NSTableCellView
подклассе:
override func viewWillDraw() {
name.cursorColor(NSColor.white)
}
... но приложение вылетает на этой строке внутри extension
:
let fieldEditor = self.window?.fieldEditor(true, for: self) as! NSTextView //Crash!
Я предполагаю, что это потому, что он не может найти ссылку на self.window
, но я не уверен.
Есть идеи, что я делаю неправильно?