我正在制作一个非常简单的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];
}
答案 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;
}