问题标签 [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.
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:
并且因此可能处于不同的状态。
一些显示错误的代码:
有没有其他人看过这个?或者有什么想法?
ios - 自定义 UITextInput 实现不显示多阶段输入建议
我有一个UITextInput
基于自定义的文本编辑器。它工作得很好,除了通过标记文本进行多阶段输入。
我的标记区域正确呈现,并插入了标记文本,但键盘上方的候选列表为空白。
例如,这里是在标准 UITextView 上显示建议的日文(假名)键盘:
这是我的自定义编辑器,显示相同的标记文本:
我花了几天时间调试这个问题,发现原因是私有类UIKeyboardImpl
返回NO
该方法delegateSupportsCorrectionUI
如果我在一个类别中覆盖此方法UIKeyboardImpl
并改为返回YES
,则多级输入建议会正确显示给我的文本编辑器。然而,这并没有解决问题的根本原因(并且它不可用)。
我还非常仔细地查看了 Apple 的 SimpleTextInput 示例代码。这实现了一个基本的核心文本编辑器。SimpleTextInput 正确显示多级输入建议,但是我似乎无法在其实现中找到UITextInput
导致它工作和我的中断的单一差异。
(事实上,我无法“破坏” SimpleTextInput 示例显示多阶段输入的能力。这让我认为我对UITextInput
实现的关注是错误的。这完全是另外一回事。)
ios - iOS:QuickType 键盘建议如何与 UITextInput 协议一起使用?
我们有一个使用UITextInput
,UIKeyInput
和UITextInputTraits
协议实现的文本输入视图。
基本的文本输入和删除工作正常,通过insertText:
和deleteBackward
。但是,这些方法没有收到 QuickType 建议,我无法找到有关 QuickType 如何与这些协议交互的文档。
我应该如何实现这些协议来接收 QuickType 输入?
ios - 在 Swift 中采用 UITextInputTraits
我正在尝试在 Swift 3 中采用UITextInputTraits
自定义子类。UIButton
我添加了文档“符号”部分中指定的所有属性:
但是,当我尝试编译时,isSecureTextEntry
会导致以下错误:
由 setter 为 'isSecureTextEntry' 提供的 Objective-C 方法 'setIsSecureTextEntry:' 与要求的选择器 ('setSecureTextEntry:') 不匹配
如果我使用建议的“修复它”,属性声明将变为:
...但现在我得到了三个错误:
预期模式
一行中的连续声明必须用';'分隔
var
(要我在和之间插入分号@objc
),
和:
- 预期声明
实现这一属性的正确方法是什么?
ios - 在 UITextField 键盘中禁用麦克风按钮
我有一个 UITextField,键盘显示一个麦克风按钮,我想禁用它。我特别担心它不应该在 iPhone X 上显示。
我已经通过将键盘类型设置为“ASCII Capable”来禁用表情符号键盘。是否有其他设置可以删除听写?
swift - 无法分配来自 UITextInputTraits 的属性
将 UITextView 作为符合 UITextInputTraits 的对象访问时遇到奇怪的编译错误:
“无法分配给属性:‘自我’是不可变的”
但是,如果在协议中显式声明了属性,而不从 UITextInputTraits 继承,则它会成功编译。
属性声明与 UITextInputTraits 中的相同。
斯威夫特 4.2,XCode 10.1
swift - UITextInputMode 不适用于 iOS 13 中的英文小数点
我的应用中有两种本地化版本(英语和阿拉伯语)。我已将许多 UITextFields 的键盘类型设置为decimalPad。我需要对这些字段强制使用英文小数点。但是当应用程序语言为阿拉伯语时,键盘显示为阿拉伯语。通过继承 UITextField 并覆盖textInputMode ,它可以正常工作到 iOS 12 。这是代码:
在 iOS 13 中,上述代码无效。我在 iOS 13 上默认遵循Showing the system Emoji keyboard 。覆盖 textInputContextIdentifier 但仍然没有成功。
PS:它适用于其他键盘类型 - 数字、Asci 等。问题仅发生在小数点上。
swift - SwiftUI:如何在 TextEditor 中禁用“智能引号”
我正在使用 SwiftUI 为 MacOS 开发基于 Python 的图形计算器。
https://github.com/snakajima/macplot
我正在使用 SwiftUI 的 TextEditor 作为 Python 代码的编辑器,但我无法弄清楚如何禁用智能引号(UITextInputTraits、smartQuotesType: UITextSmartQuotesType)。