2012-03-07 3 views
1

UITextField私はUIPopoverControllerでオートコンプリートを実装しています。 popoverの矢印がキャレットに直接向くようにしたいと思います(MailとMessagesがTo:フィールドで行う方法です)。キャレットの位置を表すCGRectを取得するにはどうすればよいですか?UITextFieldでキャレットの座標(つまり、フレーム矩形)を取得するにはどうすればよいですか?

注:私はテキスト文字列内の位置には興味がありません。これはthisで扱われる質問です。 UITextFieldのフレームを基準にしてキャレットのピクセル位置を取得する方法が必要です。

答えて

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; 
} 
+1

テキスト自動スクロールでは機能しないようです。 – phatmann

関連する問題