Symbian S60 第 5 版で仮想キーボードを開く方法 (つまり、どの API を使用するか) を教えてください。ドキュメントには、これに関する情報がないようです。
3 に答える
そうです、これは明らかに公開された API であり、ドキュメントで強調表示する必要があります。そのような幸運はありません。
プラットフォーム ネイティブ コントロールのいずれかを使用している場合、ユーザーがテキスト編集コントロールにアクセスすると、仮想キーボードが自動的にポップアップします。
カスタム コントロールを作成している場合は、独自のバージョンの仮想キーボードを追加して、その選択を処理する必要があります。新しいテキスト編集、ウィンドウ所有の仮想キーボード、右のボタンを備えた類似のカスタム コントロールを作成します。すべてのアプリケーションで再利用します。ある日、Nokia は明らかな間違いを犯したことに気づき、API を公開するでしょう。
直接画面アクセスを使用している場合、s60 に似た仮想キーボードがどこからともなくポップアップすることを正確に期待することはできません。ここでも、仮想キーがどこにあるかをユーザーに知らせ、ポインター イベントに反応するように、画面に素敵な画像を描画します。これは、かなりの量のカスタマイズ (背景、ボタンの端など) を組み込まない限り、再利用性が低くなります。
編集: Nokia は、この問題を解決するために Qt に依存している可能性があります。このコントロールは、Qt の現在の 4.7 バージョンの一部になると思います。
カスタム コード化されたキネティック スクロール領域内の QLineEdit に焦点を合わせて調整すると、同様の問題が発生しました (仮想キーボードを手動で開く方法)。次に、これは明らかにC7 Symbian ^ 3電話のQt 4.6.3で機能します。
// lineEdit is an instance of QLineEdit
QApplication::postEvent(lineEdit, new QEvent(QEvent::RequestSoftwareInputPanel));
その前に、QEvent::FocusIn イベントを同じ行編集に投稿する必要もありました。そうしないと、QLineEdit は仮想キーボードからコンテンツを更新しませんでした。
これが役に立てば幸いです。私は時間を失いました。
ありがとうティヒ、非常に役立つヒント!トリガーできる「仮想キーボードを閉じる」イベントもあります。
QApplication::postEvent(lineEdit, new QEvent(QEvent::CloseSoftwareInputPanel));