2014-01-07 89 views
0

我有一個數據錄入應用程序,我主要用iOS7開發了焦點,但它將支持ios 6.我注意到,當我嘗試檢查UITextField是否爲空時要驗證iOS6中的表單,它會告訴我,如果在那裏有佔位符文本它不是空的。在iOS 7中,我沒有這個問題。如何在iOS6中忽略佔位符文本UITextField

有沒有人有任何有效的解決方案,除了在整個應用程序中匹配所有UITextFields的每個UITextField's內容與其placeholdet文本?

編輯: 如果驗證的問題,這裏是我的驗證代碼。非常簡單,我遍歷一個強制要求爲UITextFields的數組,並檢查是否有任何輸入。

-(void)checkIfComplete{ 
    BOOL complete = YES; 
    for(int i = 0; i < self.mandatoryFields.count; i++){ 
     UITextField *tempTextField = self.mandatoryFields[i]; 

     if([tempTextField.text isEqual: @""]){ 
      complete = NO; 
     } 
    } 

    if(complete){ 
     self.btnSave.enabled = YES; 
    }else{ 
     self.btnSave.enabled = NO; 
    } 
} 

編輯2: 歐凱這是非常奇怪的。當我加載ViewControllerUITextFields驗證是錯誤的(它表示表單是完整的,即使它不是)。但是,如果我輸入UITextField,請寫下一些內容,然後刪除我剛剛寫的驗證是正確的(它表示該表單不完整)。如果這有什麼不同,我正在設置Storyboard的佔位符。

謝謝

+1

安置自己的相關代碼。文本字段的「佔位符」不會干擾其「文本」值。必須有其他事情正在進行。 – rmaddy

+0

@rmaddy謝謝,已更新 – PaperThick

+0

您不解釋發佈代碼的問題。是否有字段顯示爲空,但檢查失敗?也許他們有空間或其他空白。使用調試器並運行此代碼並查看發生了什麼。 – rmaddy

回答

5

試試這個

-(void)checkIfComplete{ 
    BOOL complete = YES; 
    for(int i = 0; i < self.mandatoryFields.count; i++){ 
     UITextField *tempTextField = self.mandatoryFields[i]; 

     if(tempTextField.text.length == 0){ 
      complete = NO; 
      break; 
     } 
    } 

    self.btnSave.enabled = complete; 
} 
+0

工作正常!感謝我,我不能相信我沒有測試 – PaperThick

+2

這段代碼和OP的原始代碼之間唯一真正的區別在於,這段代碼處理了文本字段的'text'值爲'nil'的情況。在這種情況下,這似乎是一個重要的區別。 – rmaddy

相關問題