我有简单的NSString,我放入UITextView
。我需要在新线开始时搜索位置。我认为如果textview转换字符串可以做到
自动@"This is a big test string which i want to put into UITextView"
到@"This is a\n big test \nstring which\n i want to\n put into\n UITextView"
。然后我可以搜索“\ n”并找到某条线的位置。知道我该怎么办?
答案 0 :(得分:0)
这不是UITextView的工作方式。在容器中布置文本的过程比仅查找换行符更复杂,并且不会生成包含NL字符的新字符串。
在iOS 7上,您可以使用layoutManager
的TextKit属性(textContainer
,UITextView
,...)来访问基础布局组件并查询它们的部分位置字符串。
如果您必须支持较旧的iOS版本,则characterRangeByExtendingPosition:inDirection:
协议中会UITextInput
。您可以使用它来计算文本行的范围。
答案 1 :(得分:0)
我在应用中计算“\ n”以了解何时隐藏键盘。而不是计数\ ns你可以计算其他字符来获得你的“\ n”位置。行只计算“\ n”的数量,并在视图加载时重置为零。
// dismiss keyboard from text view with return key
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if([text isEqualToString:@"\n"]) {
rows++;
if ( rows >= 2 ){
// resign text view
[self.quotationTextView resignFirstResponder];
return NO;
}else{
return YES;
}
}else{
rows = 0;
}
return YES;
}