0

내 iPhone 앱 (Xcode의 "단일보기 응용 프로그램"기반)에는 사용자가 편집 할 수있게하려는 UITextView (말 : myTextView)가 있습니다 . 나는 그것을 편집 가능하게 설정하고 있었고 모든 것이 잘 작동했다 (나는 심지어 becomeFirstResponder를 호출 할 필요가 없었다).(보조) UIWindow에서 UITextView에서 키보드를 활성화하는 방법

다른 UIWindow (예 : newWindow)에서 이동했습니다 (단일보기 응용 프로그램의 self.window라는 기본/루트/키 맨 위에 있음).

하지만 UITextView를 클릭하면 키보드가 표시되지 않습니다. 나는이 작업을 수행 할 경우

모든 작동합니다

[myTextView setEditable : YES];
[myTextView becomeFirstResponder]; // 못생긴 ... 그리고 나는 그것을 필요로하지 않지만, 단지 그것을 위해 추가했다.
[self.window addSubview : newWindow];

하지만 키보드가 즉시 표시됩니다 (이후 firstFirstResponder 설정). 그러나 becomeFirstResponder 줄을 제거하면 키보드에 이 전혀 표시되지 않습니다.!

나는 [self.window의 addSubview : newWindow] 이동하면 선이 위, 다음에 상관없이 내가 뭘, 키보드가 활성화되지되지 ...

[self.window의 addSubview : newWindow를] // 이것이 어떻게해야 할까 ... 그러나,
[myTextView setEditable : YES];
[myTextView becomeFirstResponder]; 나는이를 입력 할 때 // 심지어는

:-(작동하지 않습니다 나는 시도 내가 UITextView에 터치 (또는 제스처)를 터치 대리인을 추가 탐지하려고 아무것도. newWindow makeKeyAndVisible, 그들은 작업 (내가 포함 된 NSLog 메시지가 나타납니다), 다시, 키보드가 없습니다. 심지어 newWindow 위에 (메인 창 요소를 가질 수 있도록) 메인 윈도우의 다른 필드를 추가하려고했습니다. ...

내가 무엇을 놓치고

답변

3

당신은 하위 뷰 같은 UIWindow를 추가해서는 안 대신, 창 중 하나를 표시하는 호출하여 -. [UIWindow makeKeyAndVisible를, 또는 - [UIWindow setHid den : NO] 키 이벤트 수신을 원하지 않는 경우

여러 창을 사용해야하는 경우는 드뭅니다. 일반 UIView를 사용하면 하위 뷰가 많은 경우에 추가됩니다.

편집 : "화면에 지정"하기 전에 혼란스러운 말을했습니다. UIWindow에는 기본 화면이 아닌 다른 화면에 창을 표시하려는 경우에 할당 할 수있는 "화면"속성이 있습니다. 하지만 유스 케이스에 대해서는 신경 쓸 필요가 없다.

+0

"창에 화면 지정"... 무엇을 의미합니까? 방법? 댓글의 첫 번째 부분은 이해했지만 두 번째 부분은 이해하지 못했습니다. 다른보기 (하위보기)에 myTextView를 추가해야 그룹화 할 수 있습니다. 그러나 "창을 화면에 지정"부분은 아닙니다. – Gik

+0

좋은 답변입니다. 그것은 작동합니다. ! –