是否有任何可能 ways/delegates 来识别 UITextView 键盘的输入附件视图的状态

Is there any possible ways/delegates to identify the state of input accessory view of a UITextView's keyboard

在我的原生 iOS 应用程序中,我有一个包含简单文本视图的屏幕。当键盘出现时,我需要调整文本视图的 size/frame。我已经用 UIKeyboardDidShowNotification 成功了,如下所示:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myKeyBoardIsOnScreen:) name:UIKeyboardDidShowNotification object:nil];

并设置框架:

- (void)myKeyBoardIsOnScreen:(NSNotification*)notification {
    NSDictionary* keyboardInfo = [notification userInfo];
    NSValue* keyboardFrameBegin = [keyboardInfo valueForKey:UIKeyboardFrameBeginUserInfoKey];
    CGRect keyboardFrameBeginRect = [keyboardFrameBegin CGRectValue];

    self.textView.frame = CGRectMake(self.textView.frame.origin.x, self.textView.frame.origin.y, self.textView.frame.size.width, self.view.frame.size.height-keyboardFrameBeginRect.size.height-self.textView.frame.origin.y);
}

问题: 第一次看起来还不错。但后来我意识到键盘的框架是包含其附件视图的高度的。因此,当我通过向下拖动来隐藏附件视图时,文本视图似乎已损坏。

因此,任何人都可以建议我任何可能的 ways/delegates 来识别文本视图键盘的输入附件视图的状态(例如:输入附件视图是 shown/hidden,等等)

注意:我需要辅助视图。因此我不需要删除它。

注册成为 UIKeyboardDidChangeFrameNotification 的观察员以更新您的视图框架。

Apple Docs