2013-10-13 67 views
1

我有一點問題。 我的TableView中有兩個textField,用於設置對象的屬性。爲了做到這一點,我希望強制用戶在字符串被設置爲對象之前在textField中寫入一些內容。所以基本上是一個簡單的([textField.text length] > 0)的事情。 但我希望用戶必須在兩個textField中編寫字符串以最終啓用「完成」 - 按鈕。 我早些時候解決了這個問題,但只有一個文本字段與以下UITextFieldDelegate方法。UITextFieldDelegate,檢查文本字段是否有文本

- (BOOL)textField:(UITextField *)theTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
    { 
     NSString *newText = [theTextField.text stringByReplacingCharactersInRange:range withString:string]; 
     self.doneBarButton.enabled = ([newText length] > 0); 
     return YES; 
    } 

我對新的問題的解決方案,所以現在有兩個文本框是這個:

- (BOOL)textField:(UITextField *)theTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    NSString *newText = [theTextField.text stringByReplacingCharactersInRange:range withString:string]; 

    if ([theTextField.placeholder isEqualToString:@"textField1"]) { 
     if ([theTextField.text length] > 0) { 
      enabledVokabel = YES; 
     } else { 
      enabledVokabel = NO; 
     } 
    } 
    if ([theTextField.placeholder isEqualToString:@"textField2"]) { 
     if ([theTextField.text length] > 0) { 
      enabledUebersetung = YES; 
     } else { 
      enabledUebersetung = NO; 
     } 
    } 

    self.doneBarButton.enabled = (enabledVokabel && enabledUebersetung); 
    return YES; 
} 

所以我想在這兩個文本框(textField1的和文字欄)都充滿doneBarButton啓用文本。但是我想這樣,如果用戶刪除了文本,他/她剛纔在doneBarButton中寫入的文本在textFields爲空時被禁用。 它不這樣工作。你有解決方案嗎?或者更好的方法來解決它?

+0

[UITextField text change event] [1] 希望這個幫助一下! [1]:http://stackoverflow.com/questions/7010547/uitextfield-text-change-event –

回答

2

要麼只是連接價值。或者你可以在代碼中使用:

[textField addTarget:self 
       action:@selector(myIBActionMethod:) 
    forControlEvents:UIControlEventEditingChanged]; 

並檢查輸入的長度。

您可以將兩個文本字段連接到相同的方法,並在每次調用它們時檢查兩個文本字段的長度,如果您有兩個IBOutlets。

0

我會保持兩個UITextViews參考,讓say.-

IBOutlet UITextView *textView1; 
IBOutlet UITextView *textView2; 

正確鏈接到您的xib/storyboards。另外,我寧願使用

- (void)textViewDidChange:(UITextView *)textView 

回調。根據shouldChangeCharactersInRange文檔,它看起來像在實際更改文本之前調用此方法。

對於enabled條件下,它會看起來像InterfaceBuilder下改爲IBAction爲方法在任何你在你的觀點有類this.-

self.doneBarButton.enabled = [textView1.text length] > 0 && [textView2.text length] > 0; 
+0

mhh我真的沒有任何與textViews的經驗。我是一名初學者。 但我會嘗試..但只有一個textField解決方案適用於shouldChangeCharactesInRange .. – Gustl007

相關問題