问题标签 [uitextinput]
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:UITextInput 上的 Tokenizer 永远不会被调用
我有一个 UITextInput 实现,它有一个小问题,似乎在搞砸我的能力有很好的 AutoCapitalization:
tokenizer 属性永远不会被调用(即使在调用 becomeFirstResponder 之后),所以我的 Custom Tokenizer 永远不会被实例化或使用。
有谁知道为什么会发生这种情况?
可能有帮助的更多信息: UITextInput 实现位于 UICollectionView 的子类上
objective-c - UITextInput: How Do I Show the Caret for a Custom UIView That Implements the UITextInput Protocol?
I notice in Apple's UITextInput
protocol there is a required method called (CGRect)caretRectForPosition:(UITextPosition *)position
that, as you can see, returns a CGRect
. When I put a breakpoint inside of the method, it appears the method is never called even when I call the setSelectedTextRange:
method. Do I have to implement my own caret object inside the text view? I thought the protocol automatically handled this and just added the caret into the text view with the frame specified by the CGRect
returned by caretRectForTextPosition:
. How would I go about showing/adding a caret to my UIView
class that implements the UITextInput
protocol?
EDIT
I have read the documentation all up and down with no results and even searched for example implementations by other people. I eventually just implemented the caret myself. Is that the right/suggested way to even do this?
ios - UITextInput:selectedTextRange 与markedTextRange?
好的,所以我知道 Apple 的UITextInput
协议需要这两个UITextRange
属性selectedTextRange
,markedTextRange
并且文档说这selectedTextRange
是一个子范围,markedTextRange
其中的一个子范围是用户 yatta yatta 未确认的文本范围。关于我应该如何以不同的方式实现这两个文本范围,这仍然没有让我清楚一些事情。selectedTextRange
有人可以直观地向我解释和之间的区别markedTextRange
吗?我知道当length
of selectedTextRange
is0
表示在selectedTextRange
's处闪烁插入符号location
。但到底什么是“标记文本”?我只在 iOS 中看到以下文本视图:
我假设它代表当前的selectedTextRange
. markedTextRange
看起来像什么?或者它基本上是完全相同的东西?我很困惑 :( 在此先感谢您的帮助!在我对如何实现UITextInput
协议的理解中,该文档已证明自己毫无用处。
编辑
实现是否markedTextRange
与视图中的某些文本可能是“可标记的”但“只读的”并selectedTextRange
指示“标记的文本”中的子范围markedTextRange
,即读写的事实有关?
ios - 在 iOS7 中额外调用 setMarkedText:selectedRange?
在我的应用程序中,我已经UITextInput
实现了为我的自定义文本视图处理多阶段键输入(日语、中文键盘)。我注意到在 iOS7 中,当您有一些标记的文本时,您点击键盘上方的建议之一来替换它,这setMarkedText:selectedRange
被调用了两次:一次用从上面面板中选择的字符串替换标记的文本键盘(如您所料),并且一旦将空字符串作为参数发送。在 iOS6 中,它只被调用一次。
我的问题是,这样做有什么原因吗?以及我应该如何调整我setMarkedText:selectedRange
的帐户(如下所列):
我的第一反应是if
围绕内容发表声明
但我不确定我是否会搞砸其他一些情况。有没有人对如何解释这种变化有任何建议?
ios - UITextView 不保存markedTextStyle(UITextInput 协议)
在 UITextView 中标记文本,但由于某种原因,它拒绝接受我用 setMarkedTextStyle 给它的任何东西。-markedTextStyle 始终返回 nil,并且标记的文本始终看起来相同(蓝色背景并保持文本颜色)。
在我创建文本视图时,在标记文本之前和之后都尝试过这样做。但它仍然保持默认样式,并为样式返回 nil。
ios - shouldChangeTextInRange:replacementText: 没有被调用?
我有一个自定义文本视图,我使用CoreText
它UITextInput
来处理日语和中文键盘上的多阶段输入。我正在尝试限制可以输入到文本视图中的字符数,shouldChangeTextInRange:replacementText:
并且我注意到它仅在按下键盘上的键时调用,而不是在键盘上方提供的按钮时调用替换建议被推送(下面的示例)。
有谁知道这是为什么,如果有任何类似的方法我可以实现,当键盘上方的建议被按下时会被调用(所以我可以阻止它们被设置为标记文本)?
ios - UITextInputMode 名称?
我知道我可以通过 primaryLanguage 属性获取 UIInputModes 的语言代码
但是我怎样才能得到输入模式的实际名称呢?换句话说,可能有多个以“en-US”为主要语言的键盘......我如何确定哪个是我的?
谢谢。
ios - Swift 中的自定义输入视图
我花了几个小时试图弄清楚如何创建/然后让自定义inputView
工作。我有一个网格TextInputs
(想想拼字板),按下时应该加载自定义inputView
以插入文本。
我创建了一个.xib文件,其中包含UI elements
自定义.xib 文件inputView
。我能够创建一个CustomInputViewController
并inputView
出现,但永远无法获得实际TextInput
更新它的value/text。
Apple 文档似乎很清楚如何让它工作,而且我见过的许多教程都在使用 Obj-C(由于现在似乎无法快速完成的小事情,我无法转换它) .
应该实现哪些总体架构和必要的代码片段来创建一个customInputView
for multiple textInputs
(委托链、控制器、.xib、视图等)?
ios - iOS如何将键盘与文本字段结合起来并将它们一起显示?
我正在尝试为我的应用程序创建一个文本输入小部件。我在 Github 上找到了 XCDFormInputAccessoryView 示例并对其进行了修改,因此文本字段位于附件视图上。理论上,这允许我从应用程序的任何部分调用文本输入小部件。
澄清一下:我要为其呈现此小部件的任何视图控制器中都没有 textField。
但是,我似乎无法弄清楚如何呈现文本输入小部件。我试过了:
如果显示的文本字段是键盘本身的附件,如何使键盘显示?