2012-05-16 19 views
8

私は、ユーザーインターフェースとしてSencha Touch 2を使用する小さなアプリケーションを開発しています。今は私のiPadとiPhoneのSafariで実行しています。キーボードが表示されたときのユーザーインターフェイスの移動を防止する

私が問題にしているのは、テキストフィールドをタップすると、Safariは仮想キーボードを表示し、画面全体をWeb画面全体に押し上げるということです。

これは、トップツールバーがもう表示されないので、あまり自然ではありません。

問題を示す2つのスクリーンショットがあります。 2番目のスクリーンショットでは、キーボードが見えるときの効果を見ることができます。

この動作を防止する方法はありますか?サイズ変更 Safariに代わりにユーザーインターフェイスを使用しますか?

Normal view


Keyboard enabled

+0

あなたはこれに修正を取得しましたか? –

+0

@AdilMalik:いいえ、残念なことに – BastiBen

+0

このばかげた問題についての最新情報任意のソリューションですか? –

答えて

-1

あなたはtextfield

// Assuming the id of textfield - "textFieldId" 
Ext.getCmp('textFieldId').blur(); 
blur()メソッドを呼び出す必要があります

forcefullyフィールドのぼかし入力フォーカスを試みます。

+0

テキストフィールドのフォーカスが失われているので、キーボードを隠すことはできませんか?重要なのは、実際にはキーボードをそこに置いておきたいが、ユーザーインターフェイスの半分が画面外に押されることはない。 – BastiBen

+0

あなたは何を達成しようとしていますか?ハーフキーボード+残り半分のアプリ...? –

+0

2つのスクリーンショットをご覧ください。下のスクリーンショットでは、キーボードがユーザーインターフェイス全体を押し上げたことがわかります。一番上のツールバーは消えました。私は画面の上にUIを押し出すことなくキーボードを表示したい。代わりにサイズを変更する必要があります。 – BastiBen

-2

この場合、htmlをSenchaの要素に使用する場合は、何かタグhtmlを削除する必要があります。または、タグ
をソースHTMLコードに入れることができますか?私はあなたを助けて欲しい。 :)

+0

申し訳ありませんが、あなたは何を意味するか分かりません。 – BastiBen

+1

何かコードを書くことができますか?私は間違いがどこにあるのかと言う。ありがとう – hekomobile

4

残念ながら、Appleはこの動作を望んでいるが、someoneはwindow.scrollToは()を使用して、少しハック提案:私は私の作品解決策を見つけた

listeners: { 
    focus: function() { 
     window.scrollTo(0,0); 
    } 
} 
+0

この回答ありがとう!それはまだ完璧ではありません。ユーザは最初の動きを見ることができ、その後すぐに修正されます。それ以外にもうまくいきます。 –

0

を。 トップバーをコンテナに移動します。

xtype: 'container', 
       docked: 'top', 
       height: '100%', 
       html: '', 
       itemId: 'MyContainer', 
       width: '100%', 
       items: [ 
        { 
         xtype: 'titlebar', 
         docked: 'top', 
         itemId: 'topBar', 
         title: 'Obec Webchat', 
         layout: { 
          type: 'hbox', 
          align: 'start' 
         }, 
         items: [ 
          { 
           xtype: 'button', 
           action: 'back', 
           id: 'BackButton', 
           itemId: 'BackButton', 
           margin: '5 70% 5 15', 
           ui: 'back', 
           text: 'Home' 
          } 
         ] 
        }, 
        { 
         xtype: 'container', 
         docked: 'bottom', 
         height: '95%', 
         html: '<iframe src="http://webim.obec.local/" width="100%" height="100%" scrolling="yes"></iframe>', 
         itemId: 'MyContainer1', 
         width: '100%' 
        } 
       ] 
      } 

希望します。

1

app.jsに打ち上げ機能にこのコードを置くことが私の仕事:

if (Ext.os.is.Android) { 
     Ext.Viewport.on('painted', function() { 
      Ext.Viewport.setHeight(window.innerHeight); 
     }); 
    } 

    if (Ext.os.is.iOS) { 

     Ext.Viewport.on('painted', function() { 
      Ext.Viewport.setHeight(window.innerHeight); 
     }); 
    } 
関連する問題