【发布时间】:2017-02-24 05:57:16
【问题描述】:
为什么在文本视图中会发生这种情况? (我想我已经关闭了 XCode 中的所有替换):
我正在使用 Swift 3 语言(而不是 Objective-C)创建一个简单的 macOs Cocoa (GUI) 程序。 XCode 版本是 8.2.1。 Swift 版本是 3.0.2。
我在故事板视图控制器窗口(在 Main.storyboard 中)添加了一个“文本视图:”,并在代码中为它创建了一个 Outlet(ViewController.swift)。当检查“视图控制器场景”时,我的 TextView 是嵌套的像这样:滚动视图 > 剪辑视图 > 文本视图。
生成的插座如下所示:
@IBOutlet weak var txtWindow: NSScrollView!
我可以设置文本、明文、从文件中填充文本等。
但是,每当我使用 2 个破折号设置文本(无论是从文件中读取源代码,还是手动键入),文本视图窗口都会自动将其替换为 em-dash(单个字符 - 更长的破折号)。我想禁用这种自动更正的替换行为,并保持破折号不变。
此外,当输入三个点/句点(省略号)时,会发生相同的替换。我不希望出现花哨的省略号字符 - 只需保留三个句点即可。
似乎我已关闭所有替换,但在文本框中键入时仍会发生这种情况。我错过了什么?
【问题讨论】:
-
看起来你为滚动视图而不是文本视图创建了一个出口。你有多少个文本视图?
-
一个文本视图嵌套在这个滚动视图中,然后还有另外 1 个“安全文本字段”,其出口是一个 NSTextField。
-
如何设置文字?
-
txtWindow.documentView!.insertText(my_variable!)。但是,这种替换行为通过代码起作用,而且当我在文本视图中徒手键入时也是如此。
-
看来这是个bug;见this SO question。我现在必须在代码中进行替换。