我想以编程方式设置标记的文本,并且由于iOS5 UITextView和UITextField符合UITextInput,所以应该可以这样做,但是由于某些原因,我总是使markedText为nil。 :(
我在这里想念什么?
这是我尝试未成功的尝试:
(虽然textview是firstResponder)

1.-当文本 View 不包含文本时:
文字:“”,selectedRange:{0,0},markedText:无。

[_textView setMarkedText:@"月" selectedRange:NSMakeRange(0, 1)];
结果:
text:“”,selectedRange:{0,0},markedText:nil。 (没有改变)

2.-当文本 View 包含文本+一些标记的文本时:
文字:“AAA”,selectedRange = {0,3},末尾标记文字:“太阳”
然后我做:
[_textView setMarkedText:@"地" selectedRange:NSMakeRange(0,3)];
结果:
文字:“AAA”,selectedRange:{0,3},markedText:无; (标记的文本变为零)

在这两种情况下,setMarkedText:selectedRange:都会将当前标记的文本(如果有的话)设置为nil。
任何帮助将不胜感激:)
更新
由于标记文本的概念似乎不清楚,因此有一个解释:
在多阶段输入语言(例如日语)中,您可以输入常规文本(例如英语)或输入标记的文本(例如日语)。
在这里,我写了普通文本:regular text然后写了带标记的文本然后我写了标记文本,因此将其附加为つき
标记的文本(蓝色框中的文本)表示过渡或中间输入阶段,因为它可能会变成其他字符/单词(称为候选项)。候选人显示在大框中。
此屏幕快照是在iPad上使用蓝牙键盘时拍摄的,但是例如在编写日语时使用软件键盘时,您会得到类似的结果。
在编写之前,textview是:
textView.text : "regular text"
textView.selectedRange : {12,0}
textView.markedText:nil
然后我写了,文本 View 变成了:
textView.text : "regular textつ"
textView.selectedRange : {13,0}
textView.markedText: "つ"
然后我写了,文本 View 变成了:
textView.text : "regular textつき"
textView.selectedRange : {14,0}
textView.markedText: "つき"
这是文本 View 的当前状态。
我希望能够以编程方式设置标记的文本:)
这可能吗? -根据UITextInput文档。

最佳答案

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

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

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

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

(没有改变)

2)当文本 View 包含文本+一些标记的文本:结尾处的text: "AAA"selectedRange: {0,3}markedText时:“太阳”然后我执行以下操作:
[_textView setMarkedText:@"地" selectedRangeNSMakeRange(0,3)];

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

(标记的文本变为零)

我刚刚在Xcode中运行的代码中解决了您的问题。当我单击三个不同的按钮时,它运行得很完美,并更改了标记的文本。当没有标记的文本时,将附加并标记该文本。
textUITextView的名称:
-(IBAction)first
{
    [text setMarkedText:@"test" selectedRange:NSMakeRange(0, 4)];
}
-(IBAction)second
{
    [text setMarkedText:@"woo" selectedRange:NSMakeRange(0,4)];
}

在这里我点击了“第一”

在这里我单击了“第二个”

希望这对您有所帮助,并应得到赏金。

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

10-13 04:17
查看更多