我想以编程方式设置标记的文本,并且由于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中运行的代码中解决了您的问题。当我单击三个不同的按钮时,它运行得很完美,并更改了标记的文本。当没有标记的文本时,将附加并标记该文本。
text
是UITextView
的名称:-(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/