0

それは私の問題です:最初の文字を見てください、 k
ここに画像の説明を入力してください
の左下は表示されていません。

私はこれを試しました:

- (CGRect)textRectForBounds:(CGRect)bounds{
    return CGRectInset( bounds , 20 , 20 );
}

- (CGRect)editingRectForBounds:(CGRect)bounds {
    return CGRectInset( bounds , 20 , 20 );
}

そしてこれも:

UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 10, 20)] ;
myText.leftView = paddingView;
myText.leftViewMode = UITextFieldViewModeAlways;

しかし、チャンスはありません!

4

2 に答える 2

1

これが良い解決策かどうかはわかりませんが、このような問題に直面したときに行ったことは、文字列の先頭に空白を追加することでした。これにより、問題が修正され、テキストが少しインデントされて始まりました。stringByAppendingString

于 2013-02-09T09:04:12.790 に答える
1

答えが遅くなってすみませんが、私の答えは、誰かが同様の解決策を探しているのを助けることができるかもしれません

これが私がパディングのために行うことです。ペーディングが必要な.mファイルの先頭に以下のコードを追加します

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"

@implementation UITextField (custom)
- (CGRect)textRectForBounds:(CGRect)bounds {
    return CGRectMake(bounds.origin.x + 10, bounds.origin.y + 8,
                  bounds.size.width - 20, bounds.size.height - 16);
}
- (CGRect)editingRectForBounds:(CGRect)bounds {
    return [self textRectForBounds:bounds];
}
@end

#pragma clang diagnostic pop

PSディレクティブは、メソッドをオーバーライドするカテゴリに関する警告を防ぐために使用されます。

于 2013-08-31T19:39:11.353 に答える