9

我需要获取 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"}> 
4

2 回答 2

5

这里有一个类似问题的答案:UITextPosition to NSRange

基本上,您调用-offsetFromPosition:toPosition:UITextRange开始和结束,初始位置为myTextView.beginningOfDocument

于 2013-03-26T07:18:14.223 回答
5

UITextView 符合UITextInput. 作为该协议的一部分,它必须实现并处理它自己的 UITextRange 和 UITextPosition 子类。这些不是结构,而是对象。

offSetFromPosition:toPosition:你可以通过使用和传入来获取一个简单的数字位置beginningOfDocument来获取起始位置。所有这些方法都将由 UITextView 实现。您还可以传入范围的开始和结束以找出选择的长度。

完整的协议参考在这里

于 2013-03-26T07:25:40.850 回答