ユーザーのユーザー名とパスワードを取得するためのプロンプトを表示したい。
これを行うには、UIAlertViewを表示し、それにサブビューとしてUITextFieldsを追加します。
最近、プロジェクトをXCode 4.2に移行し、すべてのプロジェクト設定を更新しました。ベースSDKはiOS5.0に設定されており、デプロイメントターゲットは4.0に設定されています。
その後、armv7アーキテクチャ用にのみ構築されていることに気付き、iPhone 3Gもサポートしたいので、armv6も含めるように変更しました。
これを行った後、UIAlertViewが以前のように上に移動しておらず、表示されたときにキーボードで覆われていることに気付きました。私はAppleのドキュメントでUIAlertViews(http://developer.apple.com/library/ios/#documentation/uikit/reference/UIAlertView_Class/UIAlertView/UIAlertView.html)をサブクラス化すべきではないと読んだので、方法を変更しました物事をやっていた。これは問題を解決しませんでした。
ビルド設定-「アクティブなアーキテクチャのみをビルドする」を「はい」に設定することで、自分の電話(iPhone 4、つまりarmv7アーキテクチャ)で動作させることができることに気付きました。
この問題は、armv6用にビルドしようとしていることに関係していると思われます(実際、ビルドしようとしているアーキテクチャからこれを削除すると、正しく上に移動するアラートが表示されます)。
私は今私の質問に取り掛かるべきだと思います...私はこれがなぜそれがそうであるように振る舞うのか理解するのに苦労しています。iOS 4以降でUIAlertViewにテキストフィールドを追加するときにアラートを手動で上に移動する必要がないことをどこかで読みました(現在リンクが見つかりません)。私は少なくともiOS4用にビルドしているので、これは両方のアーキテクチャで機能するべきではありませんか?
また、armv6用にビルドしても、正しく上に移動するアラートを保持するにはどうすればよいですか?
編集:たぶん私は間違っていましたが、アプリをデプロイできる電話のインスタンスが2つあることに気づきました。最初のものを選択して構築すると、UIAlertViewsが必要なときに上に移動しないアプリが得られますが、2番目のものを選択すると正しく機能します。スクリーンショットを投稿しますが、私は新しいユーザーなので、必要な権限がまだありません...