我需要在我的 中设置有限的文本宽度UITextField
,因为我把按钮放在上面UITextField
看图片:
那怎么办?
您可能需要继承 UITextField 并覆盖 editingRectForBounds: 方法。尝试这样的事情..当然相应地调整值。
- (CGRect)editingRectForBounds:(CGRect)bounds {
return CGRectInset( bounds , 10 , 10 );
}
如果它是您问题的解决方案,请接受此答案。
您可以将editingChanged
UITextView 的事件链接到以下方法:
- (IBAction)textFieldChanged:(id)sender{
if([sender.text length]>6){
sender.text = [sender.text substringToIndex: 6];
}
}
除此之外,您可能希望同时覆盖两者editingRectForBounds
,textRectForBounds
以便在编辑和不编辑时正确显示文本(参见这篇文章)。在 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)
}
}