1

내 iPad 앱의 경우 버튼을 밀면 뷰가 모달 시트로 표시됩니다. 텍스트 필드에 텍스트를 입력 한 후 키보드를 닫으려는 시도가있었습니다.modalPresentationStyle을 사용할 때 iPad에서 키보드를 닫는 방법

"disablesAutomaticKeyboardDismissal"메소드.

실제로 작동하지 않습니다. 실제로는 메소드가 로그에 따라 호출되지 않습니다. iPhone 용 또는 모달로 제공하지 않기로 선택하면 키 보드가 닫힙니다. 그러나

// [navController setModalPresentationStyle:UIModalPresentationFormSheet]; 

, 다음은 : - (BOOL) disablesAutomaticKeyboardDismissal 여부, 키보드 내가 그랬듯이 라인을 제거하지 않으면 기각되지

이 가 가

- (BOOL)disablesAutomaticKeyboardDismissal { NSLog(@"method calls"); return NO; } - (IBAction)showNewView:(id)sender { MyViewController *mvc = [[MyViewController alloc] init]; // some lines about setting content //... UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:mvc]; [navController setModalPresentationStyle:UIModalPresentationFormSheet]; [self presentViewController:navController animated:YES completion:nil]; } 
: 여기

내 코드입니다 더 이상 내가 원하는 방식으로 표현되지 않았다.

내가 뭘 잘못하고 있는지 알 수 있습니까?

답변

7

- (BOOL) disablesAutomaticKeyboardDismissal이 발표자가 아닌 양식 시트로 표시되는보기 컨트롤러에 의해 NO를 반환하도록 재정의해야합니다. 그것은 당신의 실수입니다.

+0

기술적으로 하나가되지 UINavigationController가 서브 클래스로되어

@interface AutomaticKeyboardDismissingNavigationController : UINavigationController @end @implementation AutomaticKeyboardDismissingNavigationController - (BOOL)disablesAutomaticKeyboardDismissal { return NO; } @end 

,하지만 I (클래스 이름은 아마 조금 짧아 여전히 이해할 수 있습니다.) : 귀하의 경우에 당신은 UINavigationController가 원하는 동작을 얻기 위해 서브 클래스 수 나 자신에게이 문제가있어 다른 해결책을 찾을 수 없습니다. – isaac

+0

UINavigationController를 사용하여 모달을 표시하는 경우주의하십시오. 그런 다음보기 컨트롤러가 아닌 탐색 컨트롤러에서 자동 키보드 반점 비활성화를 설정해야합니다. – thatzprem

관련 문제