2014-01-07 3 views
0

주로 iOS7을 중심으로 개발 한 데이터 입력 응용 프로그램이 있지만 ios 6을 지원합니다. 시도 할 때 UITextField이 비어 있는지 확인하려고 할 때 알아 차렸습니다. iOS6에서 양식을 확인하려면 자리 표시 자 텍스트 이 있으면 비어 있지 않다고 알려줍니다. iOS 7에는이 문제가 없습니다.iOS6에서 자리 표시 자 텍스트를 무시하는 방법 UITextField

모든 UITextField's 콘텐츠를 전체 앱의 UITextFields에 대한 자리 표시 텍스트와 일치시키는 것을 제외하고는 누구에게나 효율적인 솔루션이 있습니까?

편집 : 유효성 검사가 문제가되면 여기에 내 유효성 검사 코드가 있습니다. 매우 간단하게 배열을 통해 반복적으로 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 : 좋아요이 매우 이상한 것입니다. UITextFields과 함께 ViewController을로드 할 때 유효성 검사가 잘못되었습니다 (양식이 완전하지 않더라도 완료 됨). 그러나 UITextField을 입력하면 무언가를 작성한 다음 방금 작성한 내용을 삭제하면 올바른 것입니다 (폼이 불완전하다고 말함). 스토리 보드에서 내 자리 표시자를 설정하면 차이가 있습니다.

+1

게시하여 관련 코드를보십시오 감사합니다. 텍스트 필드의'placeholder'가'text' 값을 방해 할 방법이 없습니다. 무슨 일이있을거야. – 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

관련 문제