iOS-在单词前后追加字符串
我想在textview的突出显示区域中添加一个字符串,我指的是突出显示区域,即蓝线所在的区域 因此,一旦用户单击按钮,它就会在“蓝线”所在的位置添加一个字符串iOS-在单词前后追加字符串,ios,objective-c,string,uitextview,Ios,Objective C,String,Uitextview,我想在textview的突出显示区域中添加一个字符串,我指的是突出显示区域,即蓝线所在的区域 因此,一旦用户单击按钮,它就会在“蓝线”所在的位置添加一个字符串 我使用了stringByAppendingString,但它会在单词只存在后添加字符串您需要使用selectedRange查找文本光标的位置。然后使用replaceCharactersRange:with字符串:或insertString:a索引:将新文本插入原始文本。然后将文本更新到视图中。即使不清楚您想要实现什么,但似乎您希望用户从
我使用了
stringByAppendingString
,但它会在单词只存在后添加字符串您需要使用selectedRange
查找文本光标的位置。然后使用replaceCharactersRange:with字符串:
或insertString:a索引:
将新文本插入原始文本。然后将文本更新到视图中。即使不清楚您想要实现什么,但似乎您希望用户从文本开始的位置开始编辑文本字段。在这种情况下,您可以参考以下内容:
NSRange range = myTextView.selectedRange;
NSString * firstHalfString = [myTextView.text substringToIndex:range.location];
NSString * secondHalfString = [myTextView.text substringFromIndex: range.location];
myTextView.scrollEnabled = NO; // turn off scrolling
NSString * insertingString = [NSString stringWithFormat:@"your string value here"];
myTextView.text = [NSString stringWithFormat: @"%@%@%@",
firstHalfString,
insertingString,
secondHalfString];
range.location += [insertingString length];
myTextView.selectedRange = range;
myTextView.scrollEnabled = YES;
提示1
将视图控制器(或其他适当的对象)设置为文本字段的委托,并实现textFieldDidBeginEditing:方法,如下所示:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
UITextPosition *beginning = [textField beginningOfDocument];
[textField setSelectedTextRange:[textField textRangeFromPosition:beginning
toPosition:beginning]];
}
请注意,setSelectedTextRange:是UITExtOutput(UITextField实现)的协议方法,因此您无法直接在UITextField文档中找到它
提示2
self.selectedTextRange = [self textRangeFromPosition:newPos toPosition:newPos];
提示3
文本是UITextView,是不可变的,因此您不能更改其上的文本。您必须输入新文本才能在其上显示。@HimanshuJoshi您始终可以设置占位符文本,然后点击按钮,您可以清除文本字段以输入新文本,或者根据问题,根据您的问题放置光标needs@kevinmartin检查我的答案。这就是你要找的吗?@madLokesh我是说你不能编辑UItextField的文本,你必须创建一个新字符串,或者只是覆盖以前的文本来进行更改