Objective c 如何关闭/检测NSTextView文本替换/替换弹出窗口

Objective c 如何关闭/检测NSTextView文本替换/替换弹出窗口,objective-c,macos,cocoa,nstextview,Objective C,Macos,Cocoa,Nstextview,我有一个NSTextView,它启用了文本替换,正如预期的那样,它会弹出建议,如下所示: 我的问题是-我如何检测到这是可见的,如何以编程的方式消除它。简单地将第一响应者设置在其他地方并不能起作用。实际上,它结束了编辑并使弹出窗口仍然可见 谢谢似乎与此类似:谢谢史蒂夫。我在OSX上,那里的建议(unmarkText)没有任何效果。但是,如果我通过类似于[self.textView.textStorage setAttributedString:self.textView.textStorage]

我有一个NSTextView,它启用了文本替换,正如预期的那样,它会弹出建议,如下所示:

我的问题是-我如何检测到这是可见的,如何以编程的方式消除它。简单地将第一响应者设置在其他地方并不能起作用。实际上,它结束了编辑并使弹出窗口仍然可见


谢谢

似乎与此类似:谢谢史蒂夫。我在OSX上,那里的建议(unmarkText)没有任何效果。但是,如果我通过类似于[self.textView.textStorage setAttributedString:self.textView.textStorage]的操作来破解它;然后清除弹出窗口。但不太好-一定是更好的方法吗?NSTextViewDelegate的textView:completions:forPartialWordRange:indexOfSelectedItem:和textViewDidChangeSelection:??或者子类textView和override complete:只需设置一个可以监视的标志?我知道这是一篇旧文章,但我正在尝试找出如何在建议框中显示文本替换。当我使用默认的NSTextView创建玩具应用程序时,会执行文本替换(例如,
short
转换为
long
),但不会显示弹出窗口。缓慢或快速键入并不能改变这一点。但是,从源代码构建TextEdit时会显示弹出窗口。但我无法识别文本编辑中的相关代码。。。有什么建议吗??谢谢