2017-02-15 81 views
1

在我的应用程序中,在注册屏幕上,我有tableView,它在每个单元格中包含UITextField,在页脚中包含Submit按钮。一切正常,除非我在最后的TextField中输入值并点击提交按钮(不退出键盘)。我的功能没有显示值,因为仅当文本编辑结束时才输入值。我正在使用委托来获得价值。iOS UITextField resignFirstResponder问题

我的代码是:
在customcell.m:

- (void)textFieldDidEndEditing:(UITextField *)textField { 
    if ([textField.text length] >0) { 
    [self.cellImageview setImage:editImage]; 
    } 
    else{ 
    [self.cellImageview setImage:defaultImage]; 
    } 
    [_delegate signUpTableCell:self didUpdateValue:textField.text inTextField:textField]; 
} 

在我的viewController:

-(void)signUpTableCell:(SignUpTableCell *)cell didUpdateValue:(NSString *)value inTextField:(UITextField *)textField { 
    NSLog(@"cell:%@ value: %@ textfield value:%@ ", cell, value, textField.text); 
    [registerDictionary setValue:value forKey:textField.placeholder]; 
    NSLog(@"registerDictionary:%@", registerDictionary); 
} 

问题:

最后文本字段值是零,当我点击在提交按钮上,可能是因为 除非textField结束编辑,否则 不会接到呼叫。如果我在空旷的地方点击并放弃键盘,它就可以正常工作。有没有解决这个问题的工作?

回答

1

您是否尝试在单击按钮时手动拨打resignFirstResponder()

+0

是的,我没有,没有工作。它辞去第一响应者,但无法获得值 –

+0

因此,你的键盘实际上消失了,你的'textFieldDidEndEditing()'方法被调用,但didUpdateValue()'不被调用?你能否通过手动调用'resignFirstResponder()'来调用这些方法? –

1

添加以下代码在提交按钮:

[self.view endEditing:yes]; 

或使用

[self.yourTableview.scrollView endEditing:yes]; 
+0

已经做到了这一点,但我仍然不会得到registerDictionary数组中的值 –

0

在我的代码做一些改变固定它。在我从registerDictionary获得值后,我使用[self.view endEditing:yes];。我愚蠢。