1

我需要在我的 中设置有限的文本宽度UITextField,因为我把按钮放在上面UITextField

看图片:

在此处输入图像描述

那怎么办?

4

3 回答 3

2

您可能需要继承 UITextField 并覆盖 editingRectForBounds: 方法。尝试这样的事情..当然相应地调整值。

- (CGRect)editingRectForBounds:(CGRect)bounds {
      return CGRectInset( bounds , 10 , 10 );
}

如果它是您问题的解决方案,请接受此答案。

于 2012-05-27T17:58:00.353 回答
1

您可以将editingChangedUITextView 的事件链接到以下方法:

- (IBAction)textFieldChanged:(id)sender{
    if([sender.text length]>6){ 
        sender.text = [sender.text substringToIndex: 6];
    }
}
于 2012-05-27T17:59:52.963 回答
0

除此之外,您可能希望同时覆盖两者editingRectForBoundstextRectForBounds以便在编辑和不编辑时正确显示文本(参见这篇文章)。在 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)
    }
}
于 2014-10-23T19:21:42.390 回答