2014-09-30 89 views
0

我不想为了得到文本填充而继承UITextField类。使用外观添加填充到uitextfield

我想使用外观代理来做到这一点。

我尝试这样做:

UIView *padding = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 5, 2)]; 
[[UITextField appearance] setLeftView:padding]; 
[[UITextField appearance] setLeftViewMode:UITextFieldViewModeAlways]; 

不幸的是,如果我在我的应用程序委托把这段代码,有一个UITextField,用于它的任何视图控制器,无法加载视图

如何添加填充到文本字段而不进行子类化?

+0

这个答案解决了我的问题 http://stackoverflow.com/a/15558652/2136812 – 2014-10-01 08:45:41

回答

2
Can you try these.. 

- (CGRect)textRectForBounds:(CGRect)bounds { 
    int margin = 10; 
    CGRect inset = CGRectMake(bounds.origin.x + bounds.size.width/2, bounds.origin.y, bounds.size.width/2 - margin, bounds.size.height); 
    return inset; 
} 

- (CGRect)editingRectForBounds:(CGRect)bounds { 
    int margin = 10; 
    CGRect inset = CGRectMake(bounds.origin.x + bounds.size.width/2, bounds.origin.y, bounds.size.width/2 - margin, bounds.size.height); 
    return inset; 
} 

(OR)

做这样

// Do any additional setup after loading the view from its nib. 

UIView *paddingTxtfieldView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 20, 42)];// what ever you want 
txtfield.leftView = paddingTxtfieldView; 
txtfield.leftViewMode = UITextFieldViewModeAlways; 
txtfield.returnKeyType = UIReturnKeyNext;// if you want to go next textfiled write this otherwise "UIReturnKeyDone" 
+0

我不希望子类uitextfield ...为了编写上面的方法,我需要继承它 – 2014-09-30 13:18:55

+0

为什么你不想子类?这很容易 – iOSdev 2014-09-30 13:20:00

+1

,因为它是一个不需要的类只是一个简单的填充功能 – 2014-09-30 13:22:33