我有一个UITextField
,其中我在UIPopoverController
中实现自动完成。我希望popover的箭头直接指向插入符号(就像邮件和消息在"收件人:"字段中所做的那样)。如何获得代表插入符号位置的CGRect
?
注意:我对文本字符串中的位置不感兴趣,这就是这个问题所涉及的内容。我需要一种方法来获得插入符号相对于UITextField
帧的像素位置。
试着实现下面的代码,它对大多数字符都很好。
- (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;
}