移动未对接键盘时未发送UIKeyboardWillChangeFrame通知

时间:2013-07-14 20:59:05

标签: objective-c ipad uikeyboard

我正在尝试创建一个始终位于键盘上方的工具栏,就像Apple的本机消息应用程序一样。如果您仔细查看iPad上的该应用程序,请尝试移除键盘并通过按住右下角的按钮将其拖动。您会注意到Apple的工具栏很好地跟踪了键盘的位置。

尝试复制该行为,我订阅了keyboard-will-change-frame和keyboard-did-change-frame通知。然而,令我失望的是,我发现第一个是在用户开始拖动时发送的,而后者是在键盘捕捉到最终位置时发送的,但是没有我能找到的通知在两者之间发送。我错过了什么吗?这就是我所说的:

这是我用来订阅通知的代码:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidChangeFrame:) name:UIKeyboardDidChangeFrameNotification object:nil];

这些是我的听众功能:

- (void)keyboardWillChangeFrame:(NSNotification *)notification{

    NSLog(@"will change");
    // [self alignToolbarForKeyboard:notification action:@"will_change_frame"];

}

- (void)keyboardDidChangeFrame:(NSNotification *)notification{

    NSLog(@"did change");
    // [self alignToolbarForKeyboard:notification action:@"did_change_frame"];

}

我注释掉了两个监听器函数调用的调用,以确保它不会阻塞任何内容。是否有我不知道的通知类型?我确实看过UIWindow参考,但找不到我已有的东西。为了确保,我还检查了在移动过程中是否发送了显示/隐藏通知。他们不是。

有什么想法吗?谢谢!

0 个答案:

没有答案