0

私のプロジェクトでは、Jquery-mobile、Phonegap、およびコンパス (scss) を使用しています。

デフォルトでは、入力フィールドがフォーカスされたときに表示されるキーボードは、フィールド ナビゲーション機能を備えた一種のトップ バーを含むキーボードです。このナビゲーション バーを取り除き、iOS で利用できる最も単純なキーボードを表示したいと思います。オブジェクトをフォームまたはフォーム タグなしで囲みましたが、成功しませんでした。これを達成する方法はわかりません。可能であれば:/

アドバイスありがとうございます!

ここに画像の説明を入力

この問題が発生した場合は、必ずhttps://bugreport.apple.comにアクセスして、rdar://9844216 を複製してください。

4

2 に答える 2

5

バーを削除するには、objective-c コードに飛び込む必要があります。

これは私が使用するコードです: (UIWebview を含むコントローラー内に次のコードを追加します)

最初に、キーボードの通知を受け取るオブザーバーを追加します。

-(void)viewWillAppear:(BOOL)animated{
   [[NSNotificationCenter defaultCenter] addObserver:self
                                            selector:@selector(keyboardWillShow:)
                                                name:UIKeyboardWillShowNotification
                                              object:nil];
}

- (void)keyboardWillShow:(NSNotification *)note {
    [self performSelector:@selector(removeBar) withObject:nil afterDelay:0];
}
- (void)removeBar {
  // Locate non-UIWindow.
  UIWindow *keyboardWindow = nil;
  for (UIWindow *testWindow in [[UIApplication sharedApplication] windows]) {
    if (![[testWindow class] isEqual:[UIWindow class]]) {
        keyboardWindow = testWindow;
        break;
    }
  }

  // Locate UIWebFormView.
  for (UIView *formView in [keyboardWindow subviews]) {
    // iOS 5 sticks the UIWebFormView inside a UIPeripheralHostView.
    if ([[formView description] rangeOfString:@"UIPeripheralHostView"].location != NSNotFound) {
        for (UIView *subView in [formView subviews]) {
            if ([[subView description] rangeOfString:@"UIWebFormAccessory"].location != NSNotFound) {
                // remove the input accessory view
                [subView removeFromSuperview];
            }
            else if([[subView description] rangeOfString:@"UIImageView"].location != NSNotFound){
                // remove the line above the input accessory view (changing the frame)
                [subView setFrame:CGRectZero];
            }
        }
      }
    }
}
于 2012-10-28T13:30:58.460 に答える