如何在UITextField中获取插入符号的坐标(即框架矩形)?

i_a*_*orf 2 geometry caret uitextfield uipopovercontroller ios

我有一个UITextField我正在实现自动完成的地方UIPopoverController.我希望popover的箭头直接指向插入符号(Mail和Messages在To:字段中的方式).如何获得CGRect代表插入符号位置的代码?

注意:我对文本字符串中的位置不感兴趣,这是问题所涉及的内容.我需要一种方法来获得插入符号相对于帧的像素位置UITextField.

coc*_*ali 8

尝试实现以下代码,它适用于大多数字符.

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    UITextPosition *beginning = textField.beginningOfDocument;
    UITextPosition *start = [textField positionFromPosition:beginning offset:range.location];
    UITextPosition *end = [textField positionFromPosition:start offset:range.length];
    CGRect caretFrame = [textField caretRectForPosition:end];

    return YES;
}
Run Code Online (Sandbox Code Playgroud)