我有一个禁用了'智能报价'选项的NSTextView:
但是,如果我输入:
'你好世界'
在textview中,它实际上被替换为:
'你好世界'
(请参阅如何更换单引号。)
我认为禁用智能引号可以解决这个问题,但似乎并没有帮助。关于如何让这些更漂亮的报价消失的任何建议?
答案 0 :(得分:39)
您可以使用以下命令禁用NSTextView的智能引号:
self.textView.automaticQuoteSubstitutionEnabled = NO;
自OS X 10.9 Mavericks以来,未在界面构建器中设置复选标记似乎不起作用。
请参阅NSTextView setAutomaticQuoteSubstitutionEnabled:
此外,您可以使用它来更详细地控制文本替换。
self.textView.enabledTextCheckingTypes = 0;
请参阅NSTextView setEnabledTextCheckingTypes:
同样在Mavericks中,系统偏好设置→键盘→文本中默认启用智能引号。您可以将此作为个人偏好禁用。
答案 1 :(得分:9)
从Yosemite / Xcode 6.1
开始,此问题仍然无法解决要关闭IB似乎忽略的所有替换选项,我必须这样做:
self.textView.automaticQuoteSubstitutionEnabled = NO;
self.textView.automaticDashSubstitutionEnabled = NO;
self.textView.automaticTextReplacementEnabled = NO;
答案 2 :(得分:5)
答案 3 :(得分:2)
Swift 4扩展以使任何NSTextView等宽字体
用法:
Byte[]
NSTextView + PlainText.swift
@IBOutlet var textViewJSONPushBody: NSTextView!
@IBOutlet var textViewConsole: NSTextView!
... viewDidLoad(){
//JSON editor - larger font
self.textViewJSONPushBody.makePlainText(withFontSize: 12.0)
//Log view - smaller
//defaults to sys font - small size
self.textViewConsole.makePlainText()
//or set fontSize
self.textViewConsole.makePlainText(withFontSize: 10.0)
}
答案 4 :(得分:0)
Swift 5解决方案:
self.textview.smartQuotesType = .no
self.textview.smartDashesType = .no