我在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");
}
}
让我知道是否需要更多说明。