Objective C如何获取UITextPosition的数值

Mrw*_*lfy 9 struct objective-c uitextrange uitextposition

我需要获取UIText范围的开始和结束的数值.到目前为止,我只能将描述打印成字符串.

从查看selectedTextRange,我认为它可能是一个结构?如何获取结构的元素?

UITextRange *selectedRange = [myTextView selectedTextRange];

NSLog(@"selectedRange.start %@, selectedRange.end %@ ", selectedRange.start.description, selectedRange.end.description);
Run Code Online (Sandbox Code Playgroud)

这是描述:

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"}> 
Run Code Online (Sandbox Code Playgroud)

小智 5

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

基本上你叫-offsetFromPosition:toPosition:UITextRange的起点和终点,用的初始位置myTextView.beginningOfDocument.


jrt*_*ton 5

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

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

完整的协议参考这里.