Как получить координаты (то есть прямоугольник кадра) каретки в UITextField? - PullRequest
1 голос
/ 08 марта 2012

У меня есть UITextField, где я выполняю автозаполнение в UIPopoverController.Мне бы хотелось, чтобы стрелка поповера указывала прямо на каретку (как это делают Mail и Messages в поле To:).Как я могу получить CGRect, который представляет местоположение каретки?

Примечание: меня не интересует позиция в текстовой строке, с которой имеет дело вопросМне нужен способ получить расположение каретки в пикселях относительно кадра UITextField.

1 Ответ

8 голосов
/ 10 марта 2012

Попробуйте реализовать приведенный ниже код, он отлично работает для большинства символов.

- (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;
}
...