如何知道添加到iPad中UITextView的最后一个字符的坐标

时间:2011-03-16 15:42:11

标签: iphone ipad uitextfield uitextview

我想在UITextView的文本之间插入一个UITextField,以提供“填空”功能。我知道UITextField无法添加到UITextView中,所以我想通过在UITextView上维护这些UITextField的空间来将UITextField添加到UITextView的超级视图中。

如何确定特定字符相对于UITextView原点的坐标? textView的框架及其超级视图是相同的。任何人都可以告诉我该怎么做?有没有其他方法可以在文本段落中填写空白功能?

1 个答案:

答案 0 :(得分:0)

您可以使用UIStringDrawing additions to the NSString class来帮助查找字符的位置。

// characterIndex is the index of the character for which you are finding the position
NSString *string = [myTextView.text substringToIndex:characterIndex];
CGSize sizeOfString = [string sizeWithFont:myTextView.font constrainedToSize:myTextView.contentSize];

如果您要查找的字符位于文本视图的第一行,sizeOfString将为您提供坐标(偏离行高)。

如果您要查找的字符不在第一行,则需要迭代确定每个字符的位置,直到您要查找的字符为止,修改子字符串以在每次检测时删除以前的文本行一行的结尾。您可以通过注意迭代之间sizeOfString的高度何时发生变化来检测线的末尾。