我有普通的 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”并找到某行的位置。知道我该怎么做吗?
问问题
527 次
2 回答
0
这不是 UITextView 的工作方式。在容器中布局文本的过程比仅查找换行符更复杂,并且不会生成包含 NL 字符的新字符串。
在 iOS 7 上,您可以使用 TextKit 属性 ( layoutManager
, textContainer
, ...)UITextView
来访问底层布局组件并查询它们以获取部分字符串的位置。
如果您必须支持较旧的 iOS 版本characterRangeByExtendingPosition:inDirection:
,则UITextInput
协议中有。您可以使用它来计算一行文本的范围。
于 2013-09-22T12:46:46.493 回答
0
我在应用程序中数“\n”以了解何时隐藏键盘。而不是计算 \ns 您可以计算其他字符来获取您的“\n”位置。Rows 只计算“\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;
}
于 2013-09-22T14:11:58.943 回答