【发布时间】:2018-06-01 20:00:44
【问题描述】:
我有一个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 的引用,但我不确定。
任何想法我做错了什么?
【问题讨论】:
标签: cocoa nstextfield nstextview nstablecellview