Iphone 将UITextField增加到一定长度

Iphone 将UITextField增加到一定长度,iphone,cocoa-touch,width,uitextfield,Iphone,Cocoa Touch,Width,Uitextfield,我有一个UITextField,我想“自动”调整它的边界大小,以便为字段中添加的字符串留出空间。然而,我希望它能在一定的宽度范围内最大化。我能做这件事的最好方法是什么 谢谢你的帮助 编辑: TestingView.h #import <UIKit/UIKit.h> @interface TestingView : UIView <UITextFieldDelegate> { } @end 在委托方法中,您应该使用并使用返回的CGSize宽度参数来设置UIText

我有一个UITextField,我想“自动”调整它的边界大小,以便为字段中添加的字符串留出空间。然而,我希望它能在一定的宽度范围内最大化。我能做这件事的最好方法是什么

谢谢你的帮助

编辑:

TestingView.h

#import <UIKit/UIKit.h>


@interface TestingView : UIView <UITextFieldDelegate> {

}

@end
在委托方法中,您应该使用并使用返回的
CGSize
宽度参数来设置
UITextField
的边界宽度来测量
UITextField
的文本大小

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    float width = [yourTextField.text sizeWithFont:
           [UIFont systemFontOfSize: 14]  
                                      constrainedToSize:
           CGSizeMake(yourMaxWidth, yourTextField.bounds.size.height)].width;

    yourTextField.bounds = CGRectMake(yourTextField.bounds.origin.x,
                                      yourTextField.bounds.origin.y,
                                      width, 
                                      yourTextField.bounds.size.height);
}

你为什么不能说:

if (yourTextField.frame.size.width > self.frame.size.width) {

      yourtextField.frame.size.width = yourtextField.frame.size.width;

}

您是否尝试过自动调整大小并在文本字段周围添加一些灵活的空间?嗨,Luviere:谢谢您的建议!不幸的是,它似乎在两侧都扩展,并且似乎在左侧随机剪切文本片段。有什么方法可以解决这个问题吗?试着设置它的帧而不是它的边界,并代替
yourTextField.bounds.origin.x
设置一个固定值。明天我会测试自己,如果我告诉你的不起作用,我会再试试。卢维埃:再次感谢你的建议。但是,将其设置为帧并将其更改为中心点的设置值似乎没有多大帮助。它仍然有一个奇怪的问题,当它变得太宽时会移动/消失。你不应该设置中心点,而应该设置左边缘,通过将其增长限制到某个水平来解决变得太宽的问题:
if(width Luviere:可能是另一段代码导致了问题,但同样的问题仍然存在。UITextField似乎浮动到视图的中间,当文本变得太长时消失。Hi Jaba:该代码的问题是,我需要文本字段的宽度具有原始大小,然后在它变长时自动扩展该宽度因此,用户只有在直接单击文本(而不是在扩展框架上)时才能编辑文本。
if (yourTextField.frame.size.width > self.frame.size.width) {

      yourtextField.frame.size.width = yourtextField.frame.size.width;

}