Xcode 如何关闭OS X';我的WKWebView中的智能报价替换?

Xcode 如何关闭OS X';我的WKWebView中的智能报价替换?,xcode,macos,wkwebview,Xcode,Macos,Wkwebview,我正在开发一个包含WKWebView的Mac应用程序。web视图中的HTML包含一个输入字段,用户在其中键入代码(实际上是Ruby)。当我在这个字段中输入一个引号(“)时,它会自动变成一个漂亮的卷曲引号(“)。因为Ruby字符串使用ASCII引号作为分隔符,这是错误的 目前,我正在使用用户输入的内容,并在使用代码之前将其从卷曲引号替换为ASCII引号,但显然这并不理想 我不知道如何禁用此OS X功能。显然,用户可以在全局级别执行系统内首选项,但我只想在我的应用程序中关闭它 WKWebView、应

我正在开发一个包含WKWebView的Mac应用程序。web视图中的HTML包含一个
输入
字段,用户在其中键入代码(实际上是Ruby)。当我在这个字段中输入一个引号(“)时,它会自动变成一个漂亮的卷曲引号(“)。因为Ruby字符串使用ASCII引号作为分隔符,这是错误的

目前,我正在使用用户输入的内容,并在使用代码之前将其从卷曲引号替换为ASCII引号,但显然这并不理想

我不知道如何禁用此OS X功能。显然,用户可以在全局级别执行系统内首选项,但我只想在我的应用程序中关闭它


WKWebView、应用程序包本身或其他地方是否有一些配置可以关闭此功能?是否有HTML或CSS选项?我是否应该使用其他类型的HTML输入字段?基本上,我可以在整个堆栈的何处进行干预以关闭此功能?

如果使用Xcode的界面生成器,请打开uti选择文本字段/文本框后,可以将键盘类型设置为ASCII。在“属性检查器”下,可以将键盘类型设置为ASCII


要以编程方式执行此操作,请在系统首选项(键盘>文本>使用智能引号和破折号)中切换设置时签出上一个问题和答案。

,它为用户的全局首选项域中的键
nsAutomaticQuotesSubstitutionEnabled
设置一个值。我通过将
默认读取-g
的输出从之前到之后进行比较来确定这一点

您可以在应用程序启动的早期尝试将应用程序域设置为false,以查看这是否会禁用应用程序域:

[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"NSAutomaticQuoteSubstitutionEnabled"];
-applicationWillFinishLaunching:
甚至
main()


当然,如果这样做有效,它将在你的整个应用程序中禁用它,而不仅仅是你的
WKWebView

在一个web视图中出现
这个问题时,经过一些实验,我发现通过添加
拼写检查
属性,智能/花式引号替换将被禁用

<textarea spellcheck="false" ...>

好吧,(在撰写本文的时候)没有在任何地方和任何地方进行记录。我想
autocorrect
autocapitalize
可以做到这一点,但在web视图的上下文中设置这些显然没有任何作用


因为我当时正在开发React应用程序,所以属性是驼峰式的,在这种情况下,它是

谢谢!特别感谢你解释了你是如何计算出来的,这非常有用(教一个人钓鱼和其他:)谢谢您的回答,但正如我在问题中提到的,textfield是一个HTML文本字段,而不是Cocoa文本字段。