ios - 什么时候textFieldDidEndEditing :textField be called?

标签 ios objective-c

我在 ViewController 中有 2 个 UITextField。一个调出 UIDatePicker,另一个调出 KeyBoard(数字键盘)。然后,我在以下方法中将用户输入分配给两个类变量,一个 NSDate 变量和一个 NSNumber 变量。

-(void)textFieldDidEndEditing:(UITextField *)textField{
    if (textField == self.datePickerTextField){
        //update xxtime
        self.xxTime = self.datePicker.date;
        NSLog(@"...%@",self.xxTime);
    }
     if (textField == self.numberTextField) {
        int val = [textField.text intValue];
        self.xxNumber = [NSNumber numberWithInt:val];
        NSLog(@"...%@",self.xxNumber);
    }

}

如果我先点击 datePickerTextField,然后点击 numberTextField,则在我完成 numberTextField 的输入后不会调用此方法。

所以我的问题是如何调用此方法?我应该在某处指定“resignFirstResponder”吗?

TIA

最佳答案

一旦另一个控件获得焦点,它将调用 didEndEditing

根据API ,

This method is called after the text field resigns its first responder status.

所以如果你想didEndEditing被调用,你需要调用

[textField resignFirstResponder];

关于ios - 什么时候textFieldDidEndEditing :textField be called?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21109183/

相关文章:

objective-c - 避免 "NSArray was mutated while being enumerated"

ios - XCTest中如何知道方法内部的方法是否被调用

objective-c - 为什么 {} 适用于 C 结构而不适用于属性

ios - 如何隐藏 YTPlayerView Youtube Logo

ios - 如何使用 "sequential finger detection"的新 iOS 9.2 Touch ID 功能

ios - 在ios中以png格式保存签名图片

iphone - 当 didUpdateToLocation 收到消息时,我可以在后台做什么?

ios - viewDidLoad 和 ViewDidAppear 未被调用

ios - 透明的 UITableViewHeaderFooterView

objective-c - UITableView 由于阴影和边框而滞后