2

キーボードがUITextFieldに表示されないという断続的な問題が発生しています。

ほとんどの場合に発生しますが、毎回発生するわけではありません。

私は本当にそれを引き起こしている行動を特定することはできません。

購読しましたがUIKeyboardDidShowNotification、そこからの通知ユーザーデータは次のとおりです。

    0x15581730 {name = UIKeyboardDidShowNotification; userInfo = {
    UIKeyboardAnimationCurveUserInfoKey = 0;
    UIKeyboardAnimationDurationUserInfoKey = "0.25";
    UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 0}}";
    UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 568}";
    UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 568}";
    UIKeyboardFrameBeginUserInfoKey = "NSRect: {{inf, inf}, {0, 0}}";
    UIKeyboardFrameChangedByUserInteraction = 0;
    UIKeyboardFrameEndUserInfoKey = "NSRect: {{inf, inf}, {0, 0}}";
    }}

NSRect: {{inf, inf}, {0, 0}}これらの2つの値は、キーボードが表示されているときに有効であるため、が問題のようです。

アプリはかなり標準的です。これはナビゲーションスタックであり、これはスタックの約4レベル下のViewControllerで発生します。すべてのテキストフィールドデリゲートが設定されており、ビューまたはコントローラーについて他に奇妙なことは何も見えません。

誰かがこれを見たことがありますか?

4

3 に答える 3

4

アプリの詳細を覚えていますか? iOS 6 の向き API の変更に関連している可能性があると思います。私は同じ問題を抱えていましたが、直観的でないオリエンテーション動作に苦しんでいました.

具体的には、私のアプリはUIInterfaceOrientationMaskPortraitUp、Info.plist とルート UIViewController のsupportedInterfaceOrientations:実装の両方で唯一の許容される向きとして指定されました。また、ルートUIViewControllerからNO常に戻っていました。shouldAutorotateUIDevice の向きを使用して、子 UIViewController を表示する方法を決定し、表示される UIViewController のタイプと UIDeviceOrientation の関数を使用してステータス バーの向きを設定していました。

これは非常に単純ですが、iPad (これは iPhone アプリです) では、横向きのランチパッドから起動すると、表示された UIViewController (およびステータス バー) がウィンドウ フレームに対して垂直に向き、回転しませんでした。

また、iPhone 3GS で非常に奇妙な断続的な向き/ウィンドウ フレームのバグが発生し、RootViewController のフレームにデバイスよりもはるかに大きな愚かな寸法が与えられていました。

私が変更したこと(ルートUIViewControllerで):

- (BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

- (BOOL)shouldAutomaticallyForwardRotationMethods
{
    return NO;
}

また、表示される UIViewController のクラス (ナビゲーションによって決定される) のみに依存して、デバイスの向きを使用して正しい向きを決定することもなくなりました。これは、単純な iPad の向きのバグを解決するという期待された効果をもたらしましたが、奇妙な断続的なバグや、あなたが抱えていたキーボードのバグのインスタンスは見たことがありません。

于 2013-04-04T16:57:19.033 に答える
-1

設定

@interface UIController : UIViewController<UITextFieldDelegate>

Xib から UITextfield に Data デリゲートを割り当てます。

于 2013-03-19T14:14:31.553 に答える