问题标签 [uitextinputtraits]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1295 浏览

ios - iOS 7:UITextView UITextInputTraits 错误?

今天,在开发Reveal时,我意识到 iOS 7 的UITextView处理UITextInputTraits协议的一个错误。

该协议有一些方法可以设置当用户点击 a和其他类似的东西UITextInputTraits时应该显示什么样的键盘。UITextView

iOS 7 还引入了一个新selectable属性 onUITextView用于控制是否启用文本选择。这比以前版本的 iOS 所需的方法要好得多,在以前的版本中,您必须继承 UITextView 并返回 no canBecomeFirstResponder或设置一个inputDelegate并处理适当的委托回调以停止选择发生。

不幸的是,在 iOS 7 中同时设置editable和设置selectable为 NO 会破坏所有 UITextInputTraits方法。如果您尝试调用其中任何一个,您的应用程序将因instance does not respond to selector异常而崩溃。这很奇怪,因为 如果您调用协议中声明的任何方法,UITextView实例将返回 YES 。respondsToSelector:UITextInputTraits

在我看来,这似乎是 iOS 7 中的一个错误。我已将其报告给 Apple 作为radar://15063164。

我还注意到,对于通过代码(而不是在 Storyboards 中)创建的 UITextView,这个 bug 没有表达出来。我还不确定为什么。initWithCoder:可能有其他属性在起作用,或者 UITextView 是通过而不是 初始化的事实,initWithFrame:并且因此可能处于不同的状态。

一些显示错误的代码:

有没有其他人看过这个?或者有什么想法?

0 投票
1 回答
1043 浏览

ios - 自定义 UITextInput 实现不显示多阶段输入建议

我有一个UITextInput基于自定义的文本编辑器。它工作得很好,除了通过标记文本进行多阶段输入。

我的标记区域正确呈现,并插入了标记文本,但键盘上方的候选列表为空白。

例如,这里是在标准 UITextView 上显示建议的日文(假名)键盘:

默认标记文本

这是我的自定义编辑器,显示相同的标记文本:

在此处输入图像描述

我花了几天时间调试这个问题,发现原因是私有类UIKeyboardImpl返回NO该方法delegateSupportsCorrectionUI

如果我在一个类别中覆盖此方法UIKeyboardImpl并改为返回YES,则多级输入建议会正确显示给我的文本编辑器。然而,这并没有解决问题的根本原因(并且它不可用)。

我还非常仔细地查看了 Apple 的 SimpleTextInput 示例代码。这实现了一个基本的核心文本编辑器。SimpleTextInput 正确显示多级输入建议,但是我似乎无法在其实现中找到UITextInput导致它工作和我的中断的单一差异。

(事实上​​,我无法“破坏” SimpleTextInput 示例显示多阶段输入的能力。这让我认为我对UITextInput实现的关注是错误的。这完全是另外一回事。)

0 投票
0 回答
140 浏览

ios - iOS:QuickType 键盘建议如何与 UITextInput 协议一起使用?

我们有一个使用UITextInput,UIKeyInputUITextInputTraits协议实现的文本输入视图。

基本的文本输入和删除工作正常,通过insertText:deleteBackward。但是,这些方法没有收到 QuickType 建议,我无法找到有关 QuickType 如何与这些协议交互的文档。

我应该如何实现这些协议来接收 QuickType 输入?

0 投票
1 回答
1560 浏览

ios - 在 Swift 中采用 UITextInputTraits

我正在尝试在 Swift 3 中采用UITextInputTraits自定义子类。UIButton

我添加了文档“符号”部分中指定的所有属性:

但是,当我尝试编译时,isSecureTextEntry会导致以下错误:

由 setter 为 'isSecureTextEntry' 提供的 Objective-C 方法 'setIsSecureTextEntry:' 与要求的选择器 ('setSecureTextEntry:') 不匹配

如果我使用建议的“修复它”,属性声明将变为:

...但现在我得到了三个错误:

  1. 预期模式

  2. 一行中的连续声明必须用';'分隔

var(要我在和之间插入分号@objc),

和:

  1. 预期声明

实现这一属性的正确方法是什么?

0 投票
0 回答
122 浏览

ios - 检查拼写检查和自动更正的用户设置

我想AutoCorrectCheckSpelling.UITextView

据我所知,当用户CheckSpelling在 iOS 中禁用(设置>常规>键盘>检查拼写)时,无法以编程方式将其打开。苹果表示确实spellCheckingType会覆盖 iPhone 设置。但事实证明并非如此。

它仅在用户打开AutocorrectCheckSpelling打开时才起作用,它们可以通过编程方式关闭,遗憾的是相反它不起作用。

那么有没有办法检查用户是否在 iOS 设置中关闭了这些属性?然后我可以向用户提供某种反馈,他如何才能重新打开它们。

0 投票
2 回答
2047 浏览

ios - 在 UITextField 键盘中禁用麦克风按钮

我有一个 UITextField,键盘显示一个麦克风按钮,我想禁用它。我特别担心它不应该在 iPhone X 上显示。

我已经通过将键盘类型设置为“ASCII Capable”来禁用表情符号键盘。是否有其他设置可以删除听写?

0 投票
1 回答
141 浏览

swift - 无法分配来自 UITextInputTraits 的属性

将 UITextView 作为符合 UITextInputTraits 的对象访问时遇到奇怪的编译错误:

“无法分配给属性:‘自我’是不可变的”

但是,如果在协议中显式声明了属性,而不从 UITextInputTraits 继承,则它会成功编译。

属性声明与 UITextInputTraits 中的相同。

斯威夫特 4.2,XCode 10.1

0 投票
0 回答
400 浏览

swift - UITextInputMode 不适用于 iOS 13 中的英文小数点

我的应用中有两种本地化版本(英语和阿拉伯语)。我已将许多 UITextFields 的键盘类型设置为decimalPad我需要对这些字段强制使用英文小数点。但是当应用程序语言为阿拉伯语时,键盘显示为阿拉伯语。通过继承 UITextField 并覆盖textInputMode ,它可以正常工作到 iOS 12 。这是代码:

在 iOS 13 中,上述代码无效。我在 iOS 13 上默认遵循Showing the system Emoji keyboard 。覆盖 textInputContextIdentifier 但仍然没有成功。

PS:它适用于其他键盘类型 - 数字、Asci 等。问题仅发生在小数点上。

0 投票
2 回答
297 浏览

swift - SwiftUI:如何在 TextEditor 中禁用“智能引号”

我正在使用 SwiftUI 为 MacOS 开发基于 Python 的图形计算器。

https://github.com/snakajima/macplot

我正在使用 SwiftUI 的 TextEditor 作为 Python 代码的编辑器,但我无法弄清楚如何禁用智能引号(UITextInputTraits、smartQuotesType: UITextSmartQuotesType)。