我在UITextView
查看底部的评论。由于它位于页面底部,每当有人编辑它时,都会调用一个方法来移动页面视图,这样您仍然可以看到注释框。我的问题是,当用户编辑UITextFields
时,也会调用相同的方法。
这就是我所拥有的。首先我宣布一个通知:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:self.view.window];
然后方法本身
- (void)keyboardWillShow:(NSNotification *)notif{
...
}
我的第一个想法是添加一个条件,检查并查看对象是否是TextView,然后才执行代码。但是因为我没有将对象传递给方法,所以无论如何都要告诉方法我正在处理什么类型的对象
答案 0 :(得分:2)
文本字段和文本视图也会发送通知。在textFieldShouldBeginEditing和textViewShouldBeginEditing实现中,您可以设置一个标志,您可以在您的keyboardWillShow方法的实现中读取 - 在文本字段或文本视图通知之后发送键盘通知。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
self.sender = @"text field";
return YES;
}
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView {
self.sender = @"text view";
return YES;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:self.view.window];
}
- (void)keyboardWillShow:(NSNotification *)notif{
NSLog(@"%@",self.sender);
}