참 희안한게...아이폰 프로그래밍에서 메시지박스(경고창)형태의 UI가 있긴 있는데, 요놈이 모달 상태가 아니다. 즉, 띄우고 확인버튼을 누를때까지 대기하는 것이 아니라, 걍 슝~하고 지나간다. 확인해보니 UIActionSheet도 비슷하게 동작한다.
어찌됐건 간에 검색해보니, 다음과 같은 방법이 있다. UIAlertView를 띄워놓고 입력받아서 UIAlertView가 사라질 때 까지 기다리는 것 같다.
출처 : http://lomohome.com/320
- (BOOL)webView:(UIWebView *)sender runJavaScriptConfirmPanelWithMessage:(NSString*)message initiatedByFrame:(WebFrame *)frame{
NSLog(@"javascript ConfirmPanel : %@",message);
UIAlertView *confirmDiag = [[UIAlertView alloc] initWithTitle:nil message:messagedelegate:self cancelButtonTitle:NSLocalizedString(@"Yes", @"예")otherButtonTitles:NSLocalizedString(@"No", @"아니오"), nil];
[confirmDiag show];
//버튼 누르기전까지 지연.
while (confirmDiag.hidden == NO && confirmDiag.superview != nil)
[[NSRunLoop mainRunLoop] runUntilDate:[NSDatedateWithTimeIntervalSinceNow:0.01f]];
[confirmDiag release];
return diagStat;
}
//요놈은 UIAlertViewDelegate 를 구현하여 버튼이 눌렸을때 실행될 메소드
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
//index 0 : YES , 1 : NO
if (buttonIndex == 0){
//return YES;
diagStat = YES;
} else if (buttonIndex == 1) {
//return NO;
diagStat = NO;
}
}
괜춘한 방법인듯
댓글 없음:
댓글 쓰기