gpt4 book ai didi

cocoa - 在 TableView 单元格内更改 NSTextField 光标颜色

转载 作者:行者123 更新时间:2023-12-03 17:47:15 27 4
gpt4 key购买 nike

我有一个位于 NSTableCelView 子类内的 NSTextField 。我想更改其光标颜色,因为现在光标与背景相同。

在我的应用程序的其他地方,我使用如下方便的扩展更改了光标颜色:

extension NSTextField {
public func cursorColor(_ cursorColor: NSColor) {
let fieldEditor = self.window?.fieldEditor(true, for: self) as! NSTextView
fieldEditor.insertionPointColor = cursorColor
}
}

我将此方法放入我的 NSTableCellView 子类中的 viewWillDraw() 中:

override func viewWillDraw() {
name.cursorColor(NSColor.white)
}

...但是应用程序在扩展内的这一行崩溃:

let fieldEditor = self.window?.fieldEditor(true, for: self) as! NSTextView //Crash!

我认为这是因为它找不到对 self.window 的引用,但我不确定。

知道我做错了什么吗?

最佳答案

NSWindow.fieldEditor(_: for:) 返回一个 NSText?,但您试图将其显式强制转换为 NSTextView.

所以我的猜测是:

  1. 返回的对象为 nil 并且您的转换失败或
  2. 返回的对象是 NSText 的不同子类(因此不是 NSTextView),并且您的转换失败

崩溃时收到的实际错误消息是什么?

关于cocoa - 在 TableView 单元格内更改 NSTextField 光标颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50650300/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com