2013-09-04 4 views
2

iOS 앱에서 사용자의 이전 상호 작용을 기반으로 일부 텍스트 필드에 집중해야합니다. 합니다 (viewDidFinshLoad 방법) 다음과 같이 나는iOS에서로드하는 동안 키보드가 떨어지는 것을 방지합니다.

if (![focusElement isEqualToString:@""]) { 
    // make the keyboard freely appear without user intervention 
    [webView setKeyboardDisplayRequiresUserAction:NO]; 
    // first lose any previous focus and then focus on 
    // the previously clicked element 
    NSString *jsToFocus = [NSString stringWithFormat: 
          @"document.activeElement.blur();document.getElementById(\'%s\').focus();", 
          [focusElement UTF8String]]; 

    // javascript focuses on the input 
    [webView stringByEvaluatingJavaScriptFromString:jsToFocus]; 

이 잘 작동, 잘 자바 스크립트를 사용하여 초점을 할 수 있습니다. 유일한 문제는 페이지에 추가 프레임/자바 스크립트가로드되고 키 보드가 떨어지면 새로로드 할 때마다 두 번 다시 나타납니다. 는 사용자가 닫을 때까지 나는 한 번 입력 요소에 초점을 맞추고 표시된 키보드를, 더 중요한 것은 이것을 유지하는 (더 나은) 방법이 있나요이 이전

[webView setKeyboardDisplayRequiresUserAction:NO]; 

로 인해 일어나는 것 같아요.

미리 감사드립니다. Nikhil

으로

답변

0

작업 주위에 내 문제에, 나는 웹보기에 속성을 도입는 NO로 설정되어 있고 한 keyboad 내가 할 수 표시되지 않습니다 기본적으로

@property BOOL isKeyBoardShown; 

라고 불렀다 추가 프레임/요소로드. 그러나 원하는 요소에 집중하면 즉시 YES로 설정하고 더 이상로드를 중지합니다. 즉 내 viewShouldStartLoad... 방법은 그럼 난 키보드 알림

// set up keyboard notifications 
[[NSNotificationCenter defaultCenter] addObserver: self 
             selector: @selector(keyboardWillBeHidden:) 
              name: UIKeyboardWillHideNotification 
              object: nil]; 

그리고 방법을 소개

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest: (NSURLRequest *)request 
               navigationType: (UIWebViewNavigationType)navigationType { 

    if (self.isKeyBoardShown) 
     return NO; 

... further code ... 

과 같은

- (void) keyboardWillBeHidden : (NSNotification *) keyboardHideNotice { 
     self.isKeyBoardShown = NO; 
} 

따라서, 전체적인 아이디어는 요소에 초점이 -> 키보드 - > 키보드가 작동하는 한 더 이상 로딩을 중지하십시오 - 키보드 해지에 대한 로딩 권한 재설정

웹보기는 진행하지 않고, 키보드가 여전히 및 isKeyboardShown 속성이 YES 때문에, 사용자가 inputing 텍스트를 완료하고 키보드의 search 또는 go 키를 누르면

경우 :

이 잘 작동하지만 지금은 더 문제가 사용자가 렌즈를 두드 리지 않으면 (키보드 닫기) 검색하십시오.

검색 키 누름 이벤트를 감지 할 수있는 방법이 있습니까? 입력이 UISearchBar : (

)이 아닙니다.
관련 문제