0

我处于用户在没有退出键盘的情况下将数据输入 UITextField 的情况下,他按下 Next 按钮转到下一页。

That textfield is in custom cell with UITextView. 现在我想在用户输入时捕获该 UITableView 的每个文本字段和 UITextView 中的所有内容,因为在单击 Next 按钮时我需要保存数据。

到目前为止,我已经实现了以下方法,但是当用户将数据输入 TextField 并直接按 Next 按钮而不返回键盘时,这些方法都没有被调用

- (void)textFieldDidEndEditing:(UITextField *)textField
{

    NSString *strTitle = [textField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    textField.text = strTitle;


}


- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{   

    return YES;
}

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}

在 Next 之前从 TextFields 中保存的最佳方法是什么?

4

4 回答 4

0

至少其中一个肯定应该被调用。

不过,这可能是一件非常简单的事情:您是否仔细检查过实现这些方法的类实际上已被分配为相关 UITextField 的委托?

于 2012-02-10T02:58:14.780 回答
0

当你失去焦点时,textFieldDidEndEditing 并不总是被调用。请参阅帖子https://stackoverflow.com/a/1229914/641062。它解释了有关 endEditing 方法行为的更多信息。

所以必须用这种方法保存你的数据。这将要求您键入的每个字符。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{   

    return YES;
}
于 2012-02-10T03:26:35.090 回答
0

如果您只想在用户点击下一个按钮时知道文本字段和文本视图的内容,那么您不需要知道将调用哪个委托方法,您可以简单地在下一个按钮的 IBAction 方法中获取这些值

-(IBAction)nextButtonTapped {
    textFieldData = myTextField.text;
    textViewData =  myTextView.text;

   //code to push the next view goes here
}

希望这可以帮助!

于 2012-02-10T03:38:31.357 回答
0

如果您使用的是自定义单元格,请使用此

[[(CustomCellName *)[tableViewName cellForRowAtIndexPath:indexPathOfRowNo] textFieldName] text];
于 2012-02-10T06:06:09.617 回答