2012-09-28 115 views
0

我想提出一個非常簡單的iphone的項目,但我面對2點問題的問題:如何使標籤文本改變而改變文本框的文本

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]; 



} 

回答

1

讓您的觀點堅持UITextFieldDelegate protocol,然後實現方法:

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

而且使用這樣的:

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

對於第二個問題,UILabel的numberOfLines屬性的值更改爲0。

並注意在您的解決方案中,您正在檢查字符串標識而不是相等。所以,你應該使用,而不是
![label.text isEqualToString:textField.text]


label.text != textField.text;

0

做這樣的,這會讓你的標籤設置爲你的文本字段類型。

- (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; 
}