0

ユーザーがキーボードを辞任せずにUITextFieldにデータを入力し、[次へ]ボタンを押して次のページに移動する状況にあります。

That textfield is in custom cell with UITextView。次に、ユーザーがUITableViewに入力したときに、そのUITableViewのすべてのテキストフィールドとUITextViewのすべてをキャプチャします。これは、[次へ]ボタンをクリックしたときにデータを保存する必要があるためです。

今まで私は以下のメソッドを実装しましたが、ユーザーがTextFieldにデータを入力し、キーボードを返さずに[次へ]ボタンを直接押すと、これらのメソッドは呼び出されません

- (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

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 に答える