我需要在UITextField
中设置有限的文字宽度,因为我将按钮放在UITextField
看图片:
如何做到这一点?
答案 0 :(得分:2)
您可能需要继承UITextField并覆盖editingRectForBounds:方法。尝试这样的事情。当然,相应地调整值。
- (CGRect)editingRectForBounds:(CGRect)bounds {
return CGRectInset( bounds , 10 , 10 );
}
如果这是您问题的解决方案,请接受此答案。
答案 1 :(得分:1)
您可以将UITextView的事件editingChanged
链接到以下方法:
- (IBAction)textFieldChanged:(id)sender{
if([sender.text length]>6){
sender.text = [sender.text substringToIndex: 6];
}
}
答案 2 :(得分:0)
为了补充这一点,您可能希望覆盖editingRectForBounds
和textRectForBounds
,以便在编辑和不编辑时正确显示文本(请参阅this post) 。在Swift中,这可能是:
class MyUITextField: UITextField {
override func editingRectForBounds(bounds: CGRect) -> CGRect {
return CGRectInset(bounds, 18, 0)
}
override func textRectForBounds(bounds: CGRect) -> CGRect {
return CGRectInset(bounds, 18, 0)
}
}