如何在更改文本字段文本时更改标签文本

时间:2012-09-28 20:41:45

标签: objective-c ios ios4

我正在制作一个非常简单的iphone项目,但我遇到了两个问题:

1-我想在你输入时为你的名字打造一个类型的应用程序,所以当我输入任何字母时,我希望它立即输入 我绑定使用while但它失败并崩溃

2-当我输入长名称时,它显示(...)如何让它以多行显示

这只是我的代码

@synthesize textField,label;

-(IBAction)changeName:(id)sender{

    label.text=textField.text;
    while (label.text != textField.text){
        label.text=textField.text;
    }
    [sender resignFirstResponder];



}

3 个答案:

答案 0 :(得分:1)

让您的观点遵循UITextFieldDelegate protocol,然后实施方法:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

使用类似的东西:

label.text = [textField.text stringByReplacingCharactersInRange:range withString:string];

答案 1 :(得分:0)

对于第二个问题,将值UILabel的numberOfLines属性更改为0。

请注意,在您的解决方案中,您正在检查字符串标识而不是相等。所以你应该使用
![label.text isEqualToString:textField.text]

而不是
 label.text != textField.text;

答案 2 :(得分:0)

这样做,这将使您的标签在TextField中输入时设置。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{

UILabel *lbl_YORLabel ;
lbl_YORLabel.lineBreakMode = UILineBreakModeCharacterWrap;


CGSize size = [textView.text sizeWithFont:[UIFont systemFontOfSize:12] constrainedToSize:CGSizeMake(320, 1000) lineBreakMode:UILineBreakModeWordWrap];


// Now set the Frame size of the label and text.
CGRect _frame = lbl_YORLabel.frame;
_frame.size.height = size.height;
lbl_YORLabel.frame = _frame;


// Set text to the label
lbl_YORLabel.text = textView.text;

return YES;
}