Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS键盘上处理标记的文本_Ios_Objective C_Uitextview_Uitextviewdelegate_Uitextinput - Fatal编程技术网

在iOS键盘上处理标记的文本

在iOS键盘上处理标记的文本,ios,objective-c,uitextview,uitextviewdelegate,uitextinput,Ios,Objective C,Uitextview,Uitextviewdelegate,Uitextinput,根据, 标记文本是多级文本输入的一部分,表示 用户尚未确认的临时插入文本。它是 以独特的方式设计的。标记文本的范围始终包含 其中包含选定文本的范围,可能是 字符或插入符号 在章节中,图5-2显示了标记文本的内容: 给出第4张和第6张图像,键盘上的顶部栏显示标记的文本,如“修", "修改", "修身", 等等 我困惑的是如何: 检测用户点击标记的文本。它将替换文本 选中,或仅插入标记的文本 在工具栏上显示自定义文本。例如,[textView showMarkedText:@“hello”a索引

根据,

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

在章节中,图5-2显示了标记文本的内容:

给出第4张和第6张图像,键盘上的顶部栏显示标记的文本,如“修", "修改", "修身", 等等

我困惑的是如何:

  • 检测用户点击标记的文本。它将替换文本 选中,或仅插入标记的文本
  • 在工具栏上显示自定义文本。例如,
    [textView
    showMarkedText:@“hello”a索引:0]

谢谢。

事实上,你对“标记文本”和“候选文本”有些混淆

以中文手写键盘为例,“符号”修便笺上的谎言称为“标记文字”,具有独特的风格修", "修改", "修身“,…在键盘上,您可以将它们称为“候选对象”(如果您检查键盘的视图层次结构,则它们放置的栏名为“候选栏”)

有一些接口可以对标记的文本进行操作。您可以查看
UITextView
UITextField
确认的
UITextView
协议。
-setMarkedText:selectedRange:
取消标记文本将完成棘手的操作

没有可在候选栏上操作的公共API,如何在候选栏上检测点击也没有文档记录。但是如果您使用的是
UITextView-textView:shouldChangeTextInRange:replacementText:
-textViewDidChange:
协议间接检测到这一点e> (或
UITextField
的对应方法,如果您正在使用它)

注:据我所知,至少中文键盘有一个例外,这有点像一个bug。当你点击中文键盘的候选栏时,你点击的文本会应用到你的
UITextView
(或
UITextField
)如果没有
,则会触发-textView:shouldChangeTextInRange:replacementText:
。但最终将调用
-textViewDidChange:

希望能有所帮助