У меня та же проблема с NSTextView, и после нескольких тестов, кажется, что ошибка происходит с каждым базовым textView на macOS 10.14 для меня.
Я искал несколько исправлений в Интернете безрезультатно.Лучший обходной путь, который я нашел, - это установить делегат 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)
}
}