在UIViewController
我将自己添加为观察者:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
......
}
- (void)keyboardWillShow:(NSNotification *)notification {
NSDictionary *userInfo = [notification userInfo];
NSValue* aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [aValue CGRectValue];
if (textField1.isFirstResponder) {
NSLog(@"I am here1");
}
if (textField2.isFirstResponder) {
NSLog(@"I am here2");
}
........
}
我还在控制器中创建了五个UITextField
。我的问题是如何知道调用哪个textField。我尝试使用该方法找出哪个“isFirstResponder”已更改,但它无法正常工作。
答案 0 :(得分:4)
嗯...为什么不使用-textFieldDidBeginEditing:
UITextFieldDelegate
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
NSLog(@"%@",textField);
}
答案 1 :(得分:1)
使用标签属性!!当您创建Textfield时,设置他们的标签(某些特定于文本字段的数字),当您收到通知时,只需检查他们有哪个标签!
答案 2 :(得分:0)
尝试使用UIKeyboardDidShowNotification而不是UIKeyboardWillShowNotification。