2015-07-10 42 views
1

我爲UITextField做了一個簡單的子類,它按預期工作。我遇到的唯一問題是當文本值變得太大時,它會溢出到清除按鈕中。UITextField溢出

enter image description here

我似乎無法找出如何只改變文本的右側有一些填充不與清除按鈕相交。

#import "TextField.h" 
#import <QuartzCore/QuartzCore.h> 

IB_DESIGNABLE 

@implementation TextField 

- (void)awakeFromNib { 
    self.layer.borderColor = [[[UIColor grayColor] colorWithAlphaComponent:0.5] CGColor]; 
    [self.layer setBorderWidth:0.6]; 
    self.layer.cornerRadius = 4; 
    self.layer.masksToBounds = YES; 
} 

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

- (CGRect)editingRectForBounds:(CGRect)bounds { 
    return [self textRectForBounds:bounds]; 
} 

@end 

我已經成功地移動文本兩側所以它不會溢出到按鈕,但隨後的左側看上去很怪,因爲它有額外的間距。我怎樣才能添加填充文本的右側或清除按鈕的左側?

回答

2

只要稍稍改變你的指導方針。

- (CGRect)textRectForBounds:(CGRect)bounds { 
    return CGRectMake(bounds.origin.x, bounds.origin.y, bounds.size.width - 10, bounds.size.height); 
} 

通過擴展,你的編輯矩形也應該更新,因爲你是基於textRect的基礎。

+0

當然! *捂臉* –