2012-04-01 2 views
1

編集/保存とキャンセルボタンを持つUITableViewControllerがあります。私は現在、5行のカスタムUITableViewCellを表示しています。カスタムUITableViewCellには、テキストフィールドとラベルが含まれています。ユーザーが最初の表のセルにテキストを入力して「保存」をクリックした場合、入力/変更されたテキストが失われているとします。ユーザーのヒットは、テキストを変更/入力した後、キーを返すならば、入力された/変更された値を介して捕捉されるが:UITableViewController save issue

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField 
{ 
.......code exists to capture value here 
} 

が、一方で、ユーザーがテキストフィールドを返さずに「保存」ボタンを押した場合、私は失っています入力/変更された値。

a)私がすでに行っているテキストフィールド - >を返すとき b)ユーザーがtextfield/textviewを返さずに保存ボタンを押したとき - > ????あなたはそれがデリゲートメソッドを使用して入力されていて、文字列を保持しているプロパティを保つことができ、事前に

おかげで、 ラマ

答えて

2

。通知:textFieldShouldEndEditingを発射

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    NSMutableString *testString = [NSMutableString stringWithString:self.textField.text]; 
    [testString replaceCharactersInRange:range withString:string]; 
    self.stringInProgress = testString; 
    return YES; 
} 

別のオプション節約に最初に行うべきこととして、[のtableView endEditing]呼び出すことかもしれないが、私は特定ないよ:ような何か。

+1

+1保存時に '[tableView endEditing];に行きます。実際には 'textFieldShouldEndEditing:'メソッドを起動します。また、ユーザーがキャンセルするヒット・モデルの文字列を保持します。回答に感謝します。 – NJones

+0

saveを呼び出す前に、私は使用しています:[self.tableView endEditing:YES];それは動作しません。しかし、フィリップミルズのソリューションは機能します。しかし、私は私のtextviewに問題があります!テキストフィールドはソートされていますが、textviewはまだ保留中です。おかげで – Krishna

+0

あなたはtextviewメソッドが発射されていない理由を知っていますか? a) - (void)textViewDidChange:(UITextView *)textView b) - (void)textViewDidEndEditing:(UITextView *)textView c) - (BOOL)textViewShouldBeginEditing:(UITextView *)textView d) - (BOOL)textView:(UITextView * )textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)string ??テーブルビューを数回スクロールすると、入力/修正されたテキストが失われてしまいます。テキストフィールドは正常に動作しています。ありがとう – Krishna