我有一个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
,但我不确定。
任何想法我做错了什么?