我需要获取UIText范围的开始和结束的数值。到目前为止,我只能将描述打印为字符串。
从selectedTextRange来看,我认为它可能是一个结构?如何获取结构的元素?
UITextRange *selectedRange = [myTextView selectedTextRange];
NSLog(@"selectedRange.start %@, selectedRange.end %@ ", selectedRange.start.description, selectedRange.end.description);下面是描述:
2013-03-26 13:44:03.127 AttributedString[24678:907] selectedRange.start <UITextPosition: 0x1ead8f10, 8, {"Rrrttgh "}, {"gggggh ggg..."}>, selectedRange.end <UITextPosition: 0x1eaf7860, 14, {"...tgh gggggh"}, {" gggg"}> 发布于 2013-03-26 15:18:14
这里有一个类似问题的答案:UITextPosition to NSRange。
基本上,您在UITextRange的开始和结束时调用-offsetFromPosition:toPosition:,初始位置为myTextView.beginningOfDocument。
发布于 2013-03-26 15:25:41
UITextView符合UITextInput。作为该协议的一部分,它必须使用自己的子类UITextRange和UITextPosition实现并处理它们。这些不是结构,而是对象。
您可以使用offSetFromPosition:toPosition:并传入beginningOfDocument来获取开始位置,从而获得一个简单的数字位置。所有这些方法都将由UITextView实现。您还可以传入范围的开始和结束,以找出选定内容的长度。
完整的协议参考here。
https://stackoverflow.com/questions/15631222
复制相似问题