繁体   English   中英

如何知道哪个UITextField在响应?

[英]How to know which UITextField is responding?

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”已更改,但无法正常工作。

erm ...为什么不使用UITextFieldDelegate -textFieldDidBeginEditing:

-(void)textFieldDidBeginEditing:(UITextField *)textField
{
    NSLog(@"%@",textField);
}

使用标签属性! 当您创建文本字段时,请设置其标签(为某个特定于文本字段的编号),并在收到通知时,只需检查它们具有的标签即可!

尝试使用UIKeyboardDidShowNotification而不是UIKeyboardWillShowNotification。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM