我可能是8年以来第一次尝试更新Cocoa应用。它似乎可以正常运行,并且也可以正常运行。我可以编辑文本,但是插入点没有闪烁。
我使用NSTextView子类来显示文本。我对Cocoa感到生疏,所以我猜是因为应用小睡或类似情况有所改变。我需要做些什么来确保插入点闪烁吗?为了防止以现代的电池友好方式进行定期更新,我有什么可能要做的事情?
答案 0 :(得分:0)
我在使用NSTextView时遇到了同样的问题,经过多次测试后,看来我在macOS 10.14上的每个基本textView都发生了错误。
我在网上搜索了多个修复程序,但没有结果。我发现最好的解决方法是将textView委托设置为其自身。然后,在didProcessEditing
上,按如下所示在主线程上调用updateInsertionPointStateAndRestartTimer
:
class CustomTextView: NSTextView {
override func awakeFromNib() {
super.awakeFromNib()
// 1. Set the textStorage delegate
textStorage?.delegate = self
}
}
extension CustomTextView: NSTextStorageDelegate {
func textStorage(_ textStorage: NSTextStorage, didProcessEditing editedMask: NSTextStorageEditActions, range editedRange: NSRange, changeInLength delta: Int) {
// 2. On the main thread, update the insertion point
DispatchQueue.main.async {
self.updateInsertionPointStateAndRestartTimer(true)
}
}
答案 1 :(得分:-1)
好的,以防万一这咬人了:我已经切换到黑暗模式。显然,默认插入点是白色,因此我看不到它在白色背景下闪烁。所以我需要适当地支持暗模式。