我需要获取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"}>
答案 0 :(得分:5)
这里有一个类似问题的答案:UITextPosition to NSRange。
基本上,您在-offsetFromPosition:toPosition:
的开头和结尾处致电UITextRange
,初始位置为myTextView.beginningOfDocument
。
答案 1 :(得分:5)
UITextView符合UITextInput
。作为该协议的一部分,它必须实现并处理其自己的UITextRange和UITextPosition的子类。这些不是结构,而是对象。
您可以使用offSetFromPosition:toPosition:
获取简单的数字位置,并传入beginningOfDocument
以获取起始位置。所有这些方法都将由UITextView实现。您还可以传入范围的开头和结尾以查找选择的长度。
完整协议参考here。