2016-06-12 12 views
-1

Ich habe diesen Code unten, dass ein linken Raum einfügen kann meine UITextField in:Probleme mit dem linken Raum mit UITextField

@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 

Egal, die Klasse I fügen Sie diesen Code alle UITextField, die in meinem Projekt Wirkung nehmen existiert (Seltsam...). Aber das Problem ist, dass dieses Stück Code auch alle UISearchBar betrifft (Text und Platzhalter funktioniert nicht auf die richtige Weise, das Layout zu brechen).

Wie kann ich dieses Problem lösen?

Antwort

1
können Sie benutzerdefinierte ein Textfeld:
UITextField *textFiled = [[UITextField alloc]init]; 
textFiled.leftView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 10, 0)]; 
textFiled.leftViewMode = UITextFieldViewModeAlways; 
+0

Ich habe 144 TextField- und nur 2 SearchBar, ich habe zwei Lösungen: Bearbeiten Sie alle Rahmen aller meiner 144 Textfelder (Wiederholung 144x) oder wandeln diese search zu einem UITextField (und auch weiterhin mit meinem Code). – Lacrifilm

0

vielleicht können Sie zu Unterklasse von UITextField versuchen, anstatt Kategorie von UITextField.

@interface MyTextField : UITextField 

@end 

@implementation MyTextField 
- (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 
Verwandte Themen