禁用智能引号的NSTextView仍会替换引号

Kyl*_*yle 31 macos xcode cocoa

我有一个禁用'智能报价'选项的NSTextView:

智能报价已停用

但是,如果我输入:

'你好,世界'

进入textview,它实际上被替换为:

'你好,世界'

(看看如何替换单引号).

我认为禁用智能报价可以解决这个问题,但似乎并没有帮助.关于如何让这些漂亮的报价消失的任何建议?

McZ*_*onk 42

您可以使用以下命令禁用NSTextView的智能引号:

self.textView.automaticQuoteSubstitutionEnabled = NO;
Run Code Online (Sandbox Code Playgroud)

自OS X 10.9 Mavericks以来,未在界面构建器中设置复选标记似乎不起作用.

请参阅NSTextView setAutomaticQuoteSubstitutionEnabled:

您也可以使用它来更详细地控制文本替换.

self.textView.enabledTextCheckingTypes = 0;
Run Code Online (Sandbox Code Playgroud)

请参阅NSTextView setEnabledTextCheckingTypes:

同样在Mavericks中,系统首选项→键盘→文本中默认启用智能引号.您可以将此作为个人偏好禁用.

  • 这是NSTextView中的错误,而不是Interface Builder可以控制的错误.请在http://bugreport.apple.com上提交bug并参考radar:// 12868213. (3认同)

Elm*_*Cat 9

从Yosemite/Xcode 6.1开始,这个问题仍然没有解决

要关闭IB似乎忽略的所有替换选项,我必须这样做:

self.textView.automaticQuoteSubstitutionEnabled = NO;
self.textView.automaticDashSubstitutionEnabled = NO;
self.textView.automaticTextReplacementEnabled = NO;
Run Code Online (Sandbox Code Playgroud)


Sat*_*ito 5

Xcode 7.3仍然存在这个问题.

在IB中设置这些属性的方法.

在此输入图像描述