0

シミュレーターで実行する場合は問題ありませんが、通知はデバイス (iOS 6 を実行している iPad 3 と Mini の両方) に投稿されません。自分で通知を投稿すると、ハンドラーが呼び出されます。皆さんの中にこれに遭遇した人がいて、何かアイデアがあるかどうか疑問に思っていました。

ハンドラーを設定するコードは次のとおりです。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iPadEditSetTitleHandleKeyboardDidShowNotification:) name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iPadEditSetTitleHandleKeyboardWillShowNotification:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iPadEditSetTitleHandleKeyboardWillHideNotification:) name:UIKeyboardWillHideNotification object:nil];

そして、ハンドラー自体の定義:

- (void)iPadEditSetTitleHandleKeyboardWillHideNotification:(NSNotification *)notification
- (void)iPadEditSetTitleHandleKeyboardWillShowNotification:(NSNotification *)notification
- (void)iPadEditSetTitleHandleKeyboardDidShowNotification:(NSNotification *)notification

どんな助けでも大歓迎です。

アップデート:

ここですべてを邪魔にならないようにするために新しいプロジェクトを開始しました。これはView Controllerです。

//
//  DWViewController.m
//  KeyboatdTest
//
//  Created by Dan Wesnor on 12/3/12.
//  Copyright (c) 2012 Dan Wesnor. All rights reserved.
//

#import "DWViewController.h"

@interface DWViewController ()

@end

@implementation DWViewController


- (void)handleKeyboardNotification:(NSNotification *)notification
{
    NSLog(@"%@", notification.name);
}



- (void)viewDidLoad
{
    [super viewDidLoad];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleKeyboardNotification:) name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleKeyboardNotification:) name:UIKeyboardWillHideNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleKeyboardNotification:) name:UIKeyboardDidShowNotification object:nil];
}



- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}



@end

ストーリーボードには、1 つのテキスト フィールドが含まれています。それ以外はすべて、標準のシングルビュー アプリ テンプレートです。

まだ喜びはありません。シミュレーターでは正常に動作しますが、iPad 自体では動作しません。プロビジョニングと関係があるのでしょうか、それともコード自体の外部にあるのでしょうか?

4

1 に答える 1

5

Here's a nice undocumented behavior.

Those 3 notifications are not fired when the keyboard is split. But, it appears that attaching UITextField.inputAccessoryView before they would usually fire, they fire even if the keyboard is split. So attach the accessory view after receiving UIKeyboardWillChangeFrameNotification and the other three will fire as normal.

于 2012-12-05T22:33:07.803 に答える