2016-06-13 2 views
0

iPad 앱에서 작업 중이고 텍스트 예측 등을 사용하여 소프트 키보드 위에 표시된 막대 인 UIKeyboardAssistantBar을 숨길 수 없습니다. 전체 키보드를 보여주는 아래 그림을 참조하십시오. 소프트 키보드가 : 키보드 위의 I 숨기려 바있다 ("2"를 표시하는 하나)키보드 보조 막대를 숨기는 방법

Keyboard + assistant bar

내가 가진 문제는 외부 키보드를 사용하면됩니다 - 단지 참조를 제공합니다 텍스트보기가 포커스를 얻었을 때 표시되지 않지만 그 보조 표시 줄이 항상 대신 표시됩니다. 내가 지금까지 찾은 유일한 방법은 맨 오른쪽 아이콘을 사용하여 수동으로 숨길 수있게하는 것입니다.

이상적으로 내가 찾고있는 솔루션은이를 사용하거나 사용하지 않도록 설정하는 글로벌 호출이므로 각 텍스트보기마다 개별적으로 처리 할 필요가 없습니다.

아이디어가 있으십니까?

답변

1

시도해 볼 수있는 트릭이 있습니다. .

let item = self.yourTextView.inputAssistantItem; 
item.leadingBarButtonGroups = []; 
item.trailingBarButtonGroups = []; 
+0

+1 때문에 작동하지만, 모든 텍스트보기에서 작동하는 솔루션을 선호합니다. 그런 솔루션이 존재하는 경우 ... – Antonio

+0

다른 솔루션은 없습니다 ... 나도 받아 드리고 있습니다. 작업중인 프로젝트에서 문제를 수정했습니다. 클라이언트는 행복합니다, 그래서 나는 :) – Antonio

0

그러나 불행하게도 제안/자동 올바른 바 (제안 "2"와 중앙 버튼을 숨길 수 없습니다, 키보드의 선행 및 후행 BarButtonGroups을 숨길 허용되는 솔루션

다음은 코드입니다

HTML 로그인 페이지를 렌더링하기 위해 WKWebView를 사용하는 HTML 로그인 페이지가 필요한 iPad 네이티브 앱이 필요했습니다. HTML 로그인 페이지를 제어 할 수 없어서 제안 된 버튼을 숨기기 위해 주입 된 자바 스크립트를 사용했습니다. 아래 3 코드는 WKWebView를 생성하고 (뷰 객체를 대체하고 userScript를 페이지에 삽입 함)

var webView: WKWebView! 

override func loadView() { 

    let autocorrectJavaScript = "var inputTextElement = document.getElementById('userName');" 
    + " if (inputTextElement != null) {" 
    + "  var autocorrectAttribute = document.createAttribute('autocorrect');" 
    + "  autocorrectAttribute.value = 'off';" 
    + "  inputTextElement.setAttributeNode(autocorrectAttribute);" 
    + " }" 
    let userScript = WKUserScript(source: autocorrectJavaScript, injectionTime: .atDocumentEnd, forMainFrameOnly: false) 
    let webConfiguration = WKWebViewConfiguration() 
    webConfiguration.userContentController.addUserScript(userScript) 
    webView = WKWebView(frame: .zero, configuration: webConfiguration) 
    view = webView 
} 
관련 문제