2013-07-19 4 views
1

내 앱에서 사용자는 새 파일을 만들 수 있습니다. 사용자가 새 파일의 이름을 입력하라는 메시지를 표시하려면 스타일 UIAlertViewStylePlainTextInput의 UIAlertView를 사용합니다. 물론, 텍스트 필드에 입력 된 파일 이름이 존재하지 않는지 확인하고 싶습니다. 사용자가 내가 그 이름의 파일이 존재하는지 검사 할 경고보기의 텍스트 필드에 텍스트를 변경 그래서 때마다UIAlertView의 메시지를 동적으로 변경할 수 있습니까?

그래서 경고보기의 메시지 설정하여 사용자에게 통지하는 경우 : 모두에서

alertView.message = @"File exists! Please enter a different name."; 

을 다른 경우에는 그 이름을 가진 파일이 없으면 메시지를 전혀 표시하고 싶지 않습니다. 나는 몇 가지를 시도하지만,이 목표를 달성 할 수있는 유일한 방법처럼 보인다 후자의 경우에 공백 문자를 사용하는 것입니다

if (fileExists) { 
    alertView.message = @"File exists! Please enter a different name."; 
} else { 
    alertView.message = @" "; 
} 

여기 단점은 경고보기는 대부분의 경우 빈 줄을 보여줄 것입니다 (그 이름을 가진 그런 존재가 없을 때) 나는 그것을 피하고 싶습니다. 어떻게해야합니까? 또는 사용자에게 알리는 또 다른 방법이 있습니까?

답변

1

alertView

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Alert" message:[self getAlert] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    [alertView show]; 

getAlert

- (NSString *)getAlert { 
    if(true) { 
     return @"String 1"; 
    } else { 
     return @"String 2"; 
    } 
    return @"null"; 
} 

우리는 문자열을 얻을 수있는 방법을 호출을 작성하고 그 방법으로 우리는 우리가 원하는 문자열을보고 우리의 조건문을 만들 수 있습니다 사용.

+0

위한 애니메이션 alertView 프레임을 조절 도입 유용 할 수있다. 문제는 : 경고보기의 텍스트 필드 내용에 따라 경고보기의 메시지를 변경하려고합니다. 경고 뷰의'init' 메소드에서'getAlert' 메소드를 사용할 때, 경고 뷰는 아직 초기화되지 않았으므로 경고 뷰의 텍스트 필드를 경고 뷰 메소드에 전달할 방법이 없습니다. – Mischa

+0

@ Mischa Oh ... 나는 당신의 질문을 완전히 잘못 읽었습니다. –

1

[self performSelectorInBackground : withObject :]를 호출하여 새 스레드에서 작업을 실행하고 [self performSelectorOnMainThread : withObject : waitUntilDone :]을 호출하여 UIAlertView 텍스트를 업데이트하십시오. 방금 성공했습니다.

이 항목은 계산하고 처음에는 아주 우아한 용액 같다 평활성 Updating UIAlertView Message dynamically and newline character issue

관련 문제