2012-02-06 4 views
0

NSString 세 개 (UITextField 개 3 개) 3 개의 코드를 사용하여 UILabel :데이터 용 UITextfield 세 개를 확인한 다음 작업 수행

-(IBAction)numberEntered:(id)sender 
{ 
    if (dayEntry != nil && monthEntry !=nil && yearEntry !=nil){ 
     NSString *day=[NSString stringWithFormat:@"%@/%@/%@", dayEntry, monthEntry,  yearEntry]; 
     [dateOutput setText: day]; 
    } 
} 

는 기본적으로 나는 if 문이 코드의 [dateOutput setText: Day] 라인을 실행하기 전에 모든 텍스트 필드는 데이터를 입력했는지 확인하고 싶다.

처음에는 UITextField (예 : dayEntry)에 숫자를 입력하자마자 작동합니다.

"편집 완료"로 각 UILabel에서 조치가 호출됩니다.

답변

0

텍스트 필드가 비어있는 경우 NSString 변수에는 길이가 0 인 문자열 인 빈 문자열 값 (nil 아님)이 포함됩니다.

문자열의 length을 확인해야합니다. 당신은 또한 경우 어디를 처리하려면

if ((dayEntry.length > 0) 
    && (monthEntry.length > 0) 
    && (yearEntry.length > 0)) 

: (. NSString 변수가 충돌 대신 0을 반환합니다 그들에 length를 호출 nil을 될 일 경우에도)

그래서에 if 조건을 변경 문자열이 포함 된 단지 공백 (예 : 사용자가 입력 텍스트 필드에 하나의 공간을합니다.), 당신은 먼저 공백을 손질해야하고 length 확인 :

NSCharacterSet *ws = [NSCharacterSet whitespaceCharacterSet]; 

if (([dayEntry stringByTrimmingCharactersInSet:ws].length > 0) 
    && ([monthEntry stringByTrimmingCharactersInSet:ws].length > 0) 
    && ([yearEntry stringByTrimmingCharactersInSet:ws].length > 0)) 
+0

을 신난다, 내가 찾고 있었던 정확하게 그 것이다. 감사! – Jonnybellman

관련 문제