如何在NSTextViews中禁用自动文本替换?

时间:2013-10-04 15:03:28

标签: macos

我们的应用程序有一些非富文本的NSTextViews,用户可以输入文本。当用户输入" ..."在文本视图中,OS X会自动将其替换为我们不希望发生的省略号字符。这需要我们为应用的所有用户禁用,而不是依靠它们自行禁用它。

我希望这是一个NSUserDefaults设置,比如" ApplePressAndHoldEnabled"一,但我无法在文档中找到任何关于它的内容。我找到了一些关于" WebAutomaticTextReplacementEnabled"的信息。听起来像我们需要的偏好,但把它设置为" NO"似乎没有为我们的应用做任何事情。

我还看过NSSpellChecker,它似乎提供了" isAutomaticTextReplacementEnabled"检查文本替换是否发生的方法,但没有办法阻止它发生在应用程序中。

如何为我们的应用禁用此文本替换?

1 个答案:

答案 0 :(得分:3)

nib文件中有此设置(选择NSTextView)。不幸的是,从OS X / Xcode的最新版本开始,其中一些似乎已被破坏,因此您可能会发现必须从您的视图向您的视图发送消息。 -awakeFromNib代替,例如

- (void)awakeFromNib
{
  [myTextView setAutomaticQuoteSubstitutionEnabled:NO];
  [myTextView setAutomaticTextReplacementEnabled:NO];
}

有关完整的方法,请参阅documentation for NSTextView