我正在尝试使用其selectedTextRange
属性(从UITextInput
协议中获得)建立UITextField
实例的文本选择的开始和结束位置。但是,我不知道如何访问构成start
和end
属性的UITextPosition
对象的属性 selectedTextRange
.
苹果在UITextPosition上的文档目前很糟糕,没有提供任何方法或属性,尽管我知道对象中有这样的属性,因为NSLoging给出了这个:
<UITextPositionImpl: 0x6aaeb60>
<<WebVisiblePosition: 0x6aa40e0>(offset=5, context=([s|a], [u+0073|u+0061])>
在此示例中,"偏移量"是正确的,上下文显示选择点两侧的字符("s"和"a"),但我不知道如何访问这个模糊的WebVisiblePosition
类。那么,简而言之,有没有办法使用UITextPosition
对象从UITextField
中检索我想要的详细信息?
当然,在问完我的问题后,我就在这个SO问题中找到了答案:UITextPositionin UITextField。
似乎当用作UITextField
的一部分时,UITextPosition
对象并不意味着直接修补,而是用于喂养其他方法。在这种情况下,方法 offsetFromPosition:toPosition:
以及文本字段属性 beginningOfDocument
可用于返回选择索引的NSInteger
。