在没有重新键盘的情况下将调用哪个UITextField委托方法?

时间:2012-02-10 02:54:44

标签: iphone objective-c nsmutablearray uitextfield uitextfielddelegate

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

That textfield is in custom cell with UITextView。现在我想捕捉每个文本域中的所有内容。用户进入UITeView时UITextView,因为在下一个按钮点击时我需要保存数据。

直到现在我已经实现了以下方法,但当用户在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 个答案:

答案 0 :(得分:0)

至少应该调用其中一个。

可能是非常简单的事情:您是否已经仔细检查过实际上已经将实现这些方法的类指定为有问题的UITextField的委托?

答案 1 :(得分:0)

当你失去焦点时,

textFieldDidEndEditing并不总是被调用。看帖子https://stackoverflow.com/a/1229914/641062。它解释了有关endEditing方法行为的更多信息。

因此必须在此方法中保存数据。这将调用您键入的每个字符。

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

    return YES;
}

答案 2 :(得分:0)

如果您只想在用户点击下一个按钮时知道textfield和textview的内容,那么您不需要知道将调用哪个委托方法,您只需在IBAction方法中获取这些值以获取下一个按钮

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

   //code to push the next view goes here
}

希望这有帮助!

答案 3 :(得分:0)

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

[[(CustomCellName *)[tableViewName cellForRowAtIndexPath:indexPathOfRowNo] textFieldName] text];