UITextField,用于定义UITableViewCell和模式视图验证(UITextField

2019-09-20 03:20发布

我使用中所描述的方法这个计算器张贴从文本字段检索值。 我的问题是,tableview中有模式地提出,我有一个save按钮验证输入和存储。

的问题是, textFieldDidEndEditing当用户点击的方法被调用UIBarButtonItem (=保存按钮,其封闭模态的视图)。

在这种情况下(当用户想保存输入),我想验证它。 但值存储在性能textFieldDidEndEditing 。 由于这样的事实,这种方法不叫,我不能正确验证输入值。

有没有人有这样的提示或解决方案?

提前致谢!

Answer 1:

您应该分配唯一的标签号码与您的文本字段,然后跟踪其上当前处于活动状态(即使用一个INT伊娃存储活跃文本字段变量值)在textFieldDidBeginEditing代表和当用户点击保存,你应该得到的通过这最后的文本框的标签值,那么它的文本值,所以你可以验证它。



Answer 2:

好了,我们开始吧:

由于@Lefteris,他与存储当前指数的想法。 由于这样的事实,我不能索引存储到tag属性,我决定来存储活动indexPath和额外有效textField 。 (我知道,到了一个参考UITextField就足够了,但我需要它的其他的东西)

首先,我增加了这两个属性:

@property (nonatomic, strong) NSIndexPath *activeIndexPath;
@property (nonatomic, strong) UITextField *activeTextField;

然后,我实现textFieldDidBeginEditing:textFieldDidEndEditing:UITextFieldDelegate

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    NSIndexPath *indexPath = (NSIndexPath*)[self.tableView indexPathForCell:(UITableViewCell*)[[textField superview] superview]];

    self.activeTextField = textField;
    self.activeIndexPath = indexPath;
}

- (void)textFieldDidEndEditing:(UITextField *)textField 
{
    NSString *input = textField.text;    

    //assuming values from input textfield into corresponding properties
    [self assumeInput:input withIndexPath:self.activeIndexPath];

    self.activeTextField = nil;
    self.activeTextField = nil;
}

textFieldDidEndEditing:我将值存储到我的性能(如self.firstNameself.lastName通过使用该方法,等等...) [self assumeInput:input withIndexPath:self.activeIndexPath];

在我saveAction -方法我存储从当前活动的价值TextField

- (IBAction)saveButtonClicked:(UIBarButtonItem *)sender 
{    
    //assuming input from active field (didEndEditing _not_ called right now!)
    [self assumeInput:self.activeTextField.text withIndexPath:self.activeIndexPath];

    //test output
    NSLog(@"firstName: %@", self.firstName);
    NSLog(@"lastName: %@", self.lastName);
    NSLog(@"email: %@", self.email);
    ...
}

......这就是它!

希望能帮助到你! 由于@Lefteris为他输入。

最好的,克里斯



文章来源: UITextField in UITableViewCell and validation in modal view