3

私がやろうとしていること:

新しいFacebookアプリとPathアプリが使用するのと同じタイプのサイドスタイルメニューを使用しています。これが私がベースにしているコードです:https ://github.com/pkluz/ZUUIRevealController (画像のリンクもクリックしてください)。

基本的に、私の「メイン」ビューでは、キーボードは常に表示されます。側面図を「表示」するときは、キーボードがメインビューに接続されているかのように、キーボードをメインビューの残りの部分と一緒にスライドさせたいと思います。現在、それは他のすべてをオーバーレイしたままです。

-

これを達成する方法を見つけようとする必要がありますか?それとも、キーボードのフレームがかなりしっかりと固定されていますか?

さらに良いことに、これを行う方法を説明できれば、私が基にしているGitHubコードを使用して-私は間違いなく報奨金を与えます(ただし、質問は数日間続く必要があるため、まだ設定できません) !!

4

2 に答える 2

6

解決しました...実際には非常にクリーンな方法があります。

UIView * activeKeyboard = activeInputView.inputAccessoryView.superview;
activeKeyboard.frame = newFrame;

とても簡単です。文書化されていないAPI呼び出しはありませんが、それでも承認プロセスを通過することに気づきました。

このコードは重要な部分であり、すべてを実現するためにその周りに他のコードがあることを覚えておいてください-しかし、同じことを達成する必要があるかどうかを理解するのはそれほど難しいことではありません:)

于 2012-06-09T02:50:00.163 に答える
2

可能性はありますが、メッセージ アプリの動作を再現するために、このような実験を行いました (ユーザーはメッセージ リストをスクロールしてキーボードをドラッグできます)。

とはいえ、これを行うための公式に認可された方法はないため、どのソリューションもハックである可能性が高く、OS の更新で壊れる可能性があります。

私が行った方法は、基本的にUIWindow、キーボードが収まっている を見つけて、そのtransformプロパティを変更することでした。キーボード ウィンドウは現在プライベート クラスを使用していますUITextEffectsWindowが、これはいつでも変更される可能性があるため、私はそれに依存しません。キーボードが( 経由で)アクセスできるウィンドウにあるという事実でさえ、[[UIApplication sharedApplication] windows]どこにも文書化されておらず、変更される可能性があります。

リリースされたアプリでこのようなことをするかどうかはわかりません。試す場合は、将来キーボードの実装の詳細が変更された場合に壊れないように、非常に防御的にコーディングする必要があります。

于 2012-06-08T06:45:44.477 に答える