是否有任何可能的方法/代表来识别UITextView键盘的输入附件视图的状态

时间:2015-10-31 19:09:27

标签: ios objective-c uitextview uikeyboard

在我的原生iOS应用中,我有一个包含简单文本视图的屏幕。当键盘出现时,我需要调整文本视图的大小/框架。我已使用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);
}

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

因此,任何人都可以建议我任何可能的方式/代表来识别textview键盘的输入附件视图的状态(如:输入附件视图显示/隐藏等)

注意:我需要配件视图。因此,我不需要将其删除。

1 个答案:

答案 0 :(得分:1)

注册为UIKeyboardDidChangeFrameNotification的观察者,以更新您的观看信息框架。

Apple Docs