2012-04-01 7 views
1

Ich habe einen UITableViewController mit Bearbeiten/Speichern und Abbrechen-Schaltflächen. Momentan zeige ich 5 Zeilen von benutzerdefinierten UITableViewCells an. Benutzerdefinierte UITableViewCell enthält Textfeld und Beschriftung. Nehmen wir an, wenn der Benutzer Text in die erste Tabellenzelle eingibt und auf "Speichern" klickt, dann verliere ich den eingegebenen/geänderten Text. Während, falls der Benutzer den Schlüssel nach der Eingabe/Ändern Text dann der eingegebene/geänderte Wert über erfasst wird:UITableViewController speichern Problem

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

aber auf der anderen Seite, falls der Benutzer Schaltfläche „Speichern“, ohne das Textfeld Rückkehr dann das ich verliere eingegebener/geänderter Wert Was ist der beste Weg, um Benutzereingaben hier zu erfassen:

a) wenn Benutzer Textfeld zurückgibt -> was mache ich schon b) wenn Benutzer auf die Schaltfläche "Speichern" drückt, ohne Textfield/Textview -> ????

Vielen Dank im Voraus, Rama

Antwort

2

Sie eine Eigenschaft halten könnte, die die Zeichenfolge enthält, wie sie unter Verwendung eines Delegat eingegeben hat wird. Etwas wie:

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

Eine weitere Option nennen könnte sein [Tableview endEditing] als das erste, was auf einem speichern zu tun, aber ich bin nicht sicher , die die textFieldShouldEndEditing feuert: Benachrichtigung.

+1

+1 Ich würde für die '[tableView endEditing]; in speichern gehen. Es feuert tatsächlich die 'textFieldShouldEndEditing:' Methode. Und es behält die Modellzeichenfolge bei, wenn der Benutzer abbricht. – NJones

+0

danke für die Antworten. vor dem Aufruf von save verwende ich: [self.tableView endEditing: YES]; aber es funktioniert nicht. Aber Phillip Mills Lösungen funktionieren. Jedoch habe ich Probleme mit meiner Textansicht! Textfeld ist sortiert, Textansicht steht jedoch noch aus. danke – Krishna

+0

weißt du warum textview methoden nicht feuern? a) - (void) textViewDidChange: (UITextView *) Textansicht b) - (void) textViewDidEndEditing: (UITextView *) Textansicht c) - (BOOL) textViewShouldBeginEditing: (UITextView *) Textansicht d) - (BOOL) textView: (UITextView *) textView sentChangeTextInRange: (NSRange) Bereich replacementText: (NSString *) string ?? Wenn ich meine Tabellenansicht einige Male scrolle, dann verliere ich meinen eingegebenen/geänderten Text in textview !!! aber textfield funktioniert gut. Danke – Krishna