Swift NSTextView:quot;的自动完成&引用-前缀词

Swift NSTextView:quot;的自动完成&引用-前缀词,swift,autocomplete,nstextview,Swift,Autocomplete,Nstextview,我想为.abc以及def.abc和abc等“单词”提供自动补全功能,作为在NSTextView中引用重要标记的方式 我能够使def.abc和abc案例正常工作,但带“.”前缀的.abc无效。我使用的是textView(quo:completions:forPartialWordRange:indexOfSelectedItem:) NSTextViewDelegate的委托方法。 在.abc情况下,NSTextView中的自动完成机制会在“.”之后插入“.abc”完成,并导致.abc——这是不切

我想为
.abc
以及
def.abc
abc
等“单词”提供自动补全功能,作为在NSTextView中引用重要标记的方式

我能够使
def.abc
abc
案例正常工作,但带“.”前缀的
.abc
无效。我使用的是
textView(quo:completions:forPartialWordRange:indexOfSelectedItem:)
NSTextViewDelegate的委托方法。

.abc
情况下,NSTextView中的自动完成机制会在“.”之后插入“.abc”完成,并导致
.abc
——这是不切实际的

我查看了
NSTextView
NSTextViewDelegate
的文档,无法找到一种方法使自动完成在这种
.abc
情况下工作,从而避免了
.abc
结果-例如,通过连接到
didSelectCompletion
委托方法来替换首字母“.by”


有什么提示吗?

在NSTextView中覆盖
rangeForUserCompletion
以扩展范围,从而包含

这是可能的。我将尝试一下并在这里发布结果。可以确认覆盖
rangeForUserCompletion
修复了该问题。我还有一个问题,句号和空格键都是作为“接受完成”操作,而不是作为普通字符输入。为了解决这个问题,我必须覆盖
insertCompletion:forPartialWordRange:movement:isFinal
,如果isFinal和
NSApp,则跳过。currentEvent
是其中一个字符的按键。