问题标签 [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.

0 投票
1 回答
1645 浏览

ios - 处理 iOS 键盘上的标记文本

根据文档

标记文本是多级文本输入的一部分,表示用户尚未确认的临时插入文本。它以独特的方式设计。标记文本范围内始终包含选定文本范围,可能是字符范围或插入符号。

管理键盘一章中,图 5-2 显示了标记的文本是什么:

在此处输入图像描述

给定第 4 和第 6 个图像,键盘上的顶部栏显示标记的文本,如“修”、“修改”、“修身”等。

我感到困惑的是 HOWTO :

  • 检测用户点击标记的文本。它是替换选定的文本,或者只是插入标记的文本。
  • 在栏上显示自定义文本。例如,[textView showMarkedText:@"hello" atIndex:0]

谢谢。

0 投票
1 回答
162 浏览

ios - IOS:UITextInput 上的 Tokenizer 永远不会被调用

我有一个 UITextInput 实现,它有一个小问题,似乎在搞砸我的能力有很好的 AutoCapitalization:

tokenizer 属性永远不会被调用(即使在调用 becomeFirstResponder 之后),所以我的 Custom Tokenizer 永远不会被实例化或使用。

有谁知道为什么会发生这种情况?

可能有帮助的更多信息: UITextInput 实现位于 UICollectionView 的子类上

0 投票
1 回答
956 浏览

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?

0 投票
1 回答
3532 浏览

ios - UITextInput:selectedTextRange 与markedTextRange?

好的,所以我知道 Apple 的UITextInput协议需要这两个UITextRange属性selectedTextRangemarkedTextRange并且文档说这selectedTextRange是一个子范围,markedTextRange其中的一个子范围是用户 yatta yatta 未确认的文本范围。关于我应该如何以不同的方式实现这两个文本范围,这仍然没有让我清楚一些事情。selectedTextRange有人可以直观地向我解释和之间的区别markedTextRange吗?我知道当lengthof selectedTextRangeis0表示在selectedTextRange's处闪烁插入符号location。但到底什么是“标记文本”?我只在 iOS 中看到以下文本视图:

<code>selectedTextRange</code> 示例

我假设它代表当前的selectedTextRange. markedTextRange看起来像什么?或者它基本上是完全相同的东西?我很困惑 :( 在此先感谢您的帮助!在我对如何实现UITextInput协议的理解中,该文档已证明自己毫无用处。

编辑

实现是否markedTextRange与视图中的某些文本可能是“可标记的”但“只读的”并selectedTextRange指示“标记的文本”中的子范围markedTextRange,即读写的事实有关?

0 投票
1 回答
515 浏览

ios - 在 iOS7 中额外调用 setMarkedText:selectedRange?

在我的应用程序中,我已经UITextInput实现了为我的自定义文本视图处理多阶段键输入(日语、中文键盘)。我注意到在 iOS7 中,当您有一些标记的文本时,您点击键盘上方的建议之一来替换它,这setMarkedText:selectedRange被调用了两次:一次用从上面面板中选择的字符串替换标记的文本键盘(如您所料),并且一旦将空字符串作为参数发送。在 iOS6 中,它只被调用一次。

我的问题是,这样做有什么原因吗?以及我应该如何调整我setMarkedText:selectedRange的帐户(如下所列):

我的第一反应是if围绕内容发表声明

但我不确定我是否会搞砸其他一些情况。有没有人对如何解释这种变化有任何建议?

0 投票
3 回答
884 浏览

ios - UITextView 不保存markedTextStyle(UITextInput 协议)

在 UITextView 中标记文本,但由于某种原因,它拒绝接受我用 setMarkedTextStyle 给它的任何东西。-markedTextStyle 始终返回 nil,并且标记的文本始终看起来相同(蓝色背景并保持文本颜色)。

在我创建文本视图时,在标记文本之前和之后都尝试过这样做。但它仍然保持默认样式,并为样式返回 nil。

0 投票
0 回答
247 浏览

ios - shouldChangeTextInRange:replacementText: 没有被调用?

我有一个自定义文本视图,我使用CoreTextUITextInput来处理日语和中文键盘上的多阶段输入。我正在尝试限制可以输入到文本视图中的字符数,shouldChangeTextInRange:replacementText:并且我注意到它仅在按下键盘上的键时调用,而不是在键盘上方提供的按钮时调用替换建议被推送(下面的示例)。

在此处输入图像描述

有谁知道这是为什么,如果有任何类似的方法我可以实现,当键盘上方的建议被按下时会被调用(所以我可以阻止它们被设置为标记文本)?

0 投票
0 回答
188 浏览

ios - UITextInputMode 名称?

我知道我可以通过 primaryLanguage 属性获取 UIInputModes 的语言代码

但是我怎样才能得到输入模式的实际名称呢?换句话说,可能有多个以“en-US”为主要语言的键盘......我如何确定哪个是我的?

谢谢。

0 投票
2 回答
6767 浏览

ios - Swift 中的自定义输入视图

我花了几个小时试图弄清楚如何创建/然后让自定义inputView工作。我有一个网格TextInputs(想想拼字板),按下时应该加载自定义inputView以插入文本。

我创建了一个.xib文件,其中包含UI elements自定义.xib 文件inputView。我能够创建一个CustomInputViewControllerinputView出现,但永远无法获得实际TextInput更新它的value/text

Apple 文档似乎很清楚如何让它工作,而且我见过的许多教程都在使用 Obj-C(由于现在似乎无法快速完成的小事情,我无法转换它) .

应该实现哪些总体架构和必要的代码片段来创建一个customInputViewfor multiple textInputs(委托链、控制器、.xib、视图等)?

0 投票
1 回答
342 浏览

ios - iOS如何将键盘与文本字段结合起来并将它们一起显示?

我正在尝试为我的应用程序创建一个文本输入小部件。我在 Github 上找到了 XCDFormInputAccessoryView 示例并对其进行了修改,因此文本字段位于附件视图上。理论上,这允许我从应用程序的任何部分调用文本输入小部件。

澄清一下:我要为其呈现此小部件的任何视图控制器中都没有 textField。

但是,我似乎无法弄清楚如何呈现文本输入小部件。我试过了:

如果显示的文本字段是键盘本身的附件,如何使键盘显示?

在此处输入图像描述