handleKeyboardWillShow

handleKeyboardWillShow

我在ViewController中有一个Tableview。我添加了以下代码来获取键盘通知

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(handleKeyboardWillShow:)
                                             name:UIKeyboardWillShowNotification
                                           object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(handleKeyboardWillHide:)
                                             name:UIKeyboardWillHideNotification
                                           object:nil];


在键盘显示上,我正在将桌子滚动到底部。

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

    [self scrollToBottomAnimated:YES];
}


但是我的视图控制器中也有一个textview。因此,当我单击textview时,也会调用handleKeyboardWillShow方法,从而导致不必要的滚动我的tableview,如果单击textview,则不需要。

可以请我帮忙弄清楚如何检测从哪个发件人handleKeyboardWillShow调用。

谢谢

最佳答案

您可以通过检查谁是第一响应者来做到这一点。

- (void)handleKeyboardWillShow:(NSNotification *)notification
{
    if ([textFieldForScrolling isFirstResponder]) {
        [self scrollToBottomAnimated:YES];
    } else {
        NSLog(@"Is a different text input");
    }
}


让我知道是否需要更多说明。

10-07 23:25