gpt4 book ai didi

iphone - UITextInput setMarkedText :selectedRange not working?(不可能!)

转载 作者:太空狗 更新时间:2023-10-30 03:43:33 28 4
gpt4 key购买 nike

我想以编程方式设置标记的文本,因为 iOS5 UITextView 和 UITextField 符合 UITextInput 这应该是可能的,但出于某种原因,我总是将 markedText 设置为 nil。 :(我在这里缺少什么?

这是我尝试过但没有成功的方法:

(当 textview 是 firstResponder 时)

1.- 当 TextView 不包含文本时:

text: "", selectedRange : {0,0}, markedText: nil.

[_textView setMarkedText:@"月" selectedRange:NSMakeRange(0, 1)];

结果:文本:“”,selectedRange:{0,0},markedText:无。 (没有任何变化)


2.-当 TextView 包含文本+一些标记文本时:

text : "AAA", selectedRange = {0,3}, 末尾标记的文本: "太阳"然后我做:

[_textView setMarkedText:@"地" selectedRange:NSMakeRange(0,3)];

结果:文本:“AAA”,selectedRange:{0,3},markedText:无; (标记的文字变成了nil)


在这两种情况下,就像 setMarkedText:selectedRange: 会将当前标记的文本(如果有的话)设置为 nil。

任何帮助将不胜感激:)

更新

由于marked text的概念好像不清楚,这里解释一下:

在多阶段输入语言(例如日语)中,您可以输入常规文本(如英语)或输入标记文本(如日语)。

这里我写的是普通文本:regular text 然后我写的是marked text 然后我写了标记文本 所以它被附加成为 つき

标记的文本(蓝色框中的文本)表示过渡或中间输入阶段,因为它可以变成其他称为候选的字符/词。候选人显示在大方框内。

此屏幕截图是在 iPad 中使用蓝牙键盘时截取的,但您在使用软件键盘输入日语时会得到类似的结果。

在编写 之前,textview 是:

textView.text : "regular text"
textView.selectedRange : {12,0}
textView.markedText:nil

然后我写了, TextView 变成了:

textView.text : "regular textつ"
textView.selectedRange : {13,0}
textView.markedText: "つ"

然后我写了, TextView 变成了:

textView.text : "regular textつき"
textView.selectedRange : {14,0}
textView.markedText: "つき"

这是 TextView 的当前状态。

我希望能够以编程方式设置标记的文本:)

这可能吗? -- 根据 UITextInput 文档,它是。

enter image description here

最佳答案

我这里的代码在概念上有问题。我可能只是忽略了一些小事情,但我认为你的编程中只是有一个简单的错误。

1) 当 TextView 不包含文本时:text: "", selectedRange : {0,0}, markedText: nil:

[_textView setMarkedText:@"月" selectedRange:NSMakeRange(0, 1)];

Result: text: "", selectedRange: {0,0}, markedText: nil.

(没有改变)

2)当 TextView 包含文本+一些标记文本时:text: "AAA", selectedRange: {0,3}, markedText 最后:“太阳” 然后我做:

[_textView setMarkedText:@"地" selectedRangeNSMakeRange(0,3)];

Result: text: "AAA", selectedRange: {0,3}, markedText: nil;

(标记的文字变成了nil)

我刚刚在 Xcode 中运行的代码中解决了您的问题。当我单击三个不同的按钮时,它运行完美并更改了标记的文本。当没有标记文本时,附加文本并进行标记。

textUITextView 的名称:

-(IBAction)first
{
[text setMarkedText:@"test" selectedRange:NSMakeRange(0, 4)];
}
-(IBAction)second
{
[text setMarkedText:@"woo" selectedRange:NSMakeRange(0,4)];
}

这里我点击了“第一” When First is Clicked

这里我点了“第二” When Second is Clicked

我希望这对您有所帮助并且值得赏金。

关于iphone - UITextInput setMarkedText :selectedRange not working?(不可能!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8066628/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com