Exakter Zugriff auf UITextfields in TableViewCells

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Exakter Zugriff auf UITextfields in TableViewCells

    ein nerviges Problem hoffe jemand hat Erfahrung.

    Hab ein TableView mit custom TableViewCells die zur Laufzeit geladen werden. Dieses TableViewCell hat 2 Textfields. Natürlich sind im TableView mehrere Sections mit unterschiedlich vielen rows.
    Ich benutze den ActionSheetPicker (falls es wichtig ist)
    Bei "Touch Down" eines TextFields wird eine Methode ausgelöst (irgendwas:(id)sender) - dieser schreibt in diesen Textfeld etwas rein und da ist auch schon das Problem:
    Es trägt zwar in diesem Feld meinen Wert ein sobald ich aber die tabelle scrolle entdecke ich woanders den gleichen Eintrag...
    Die TextFields im TAbleViewCell haben jeweils einen Tag (1,2).

    Am Endeffekt ist wohl meine Frage: Wie greife ich exakt nur auf diesen einen TextFeld zu?
    Meine Befürchtung liegt darin, dass ich beim Eintragen über den "sender" wohl mehrere identische TExtfelder hole, die gleichzeitig den gleichen Eintrag bekommen, ich sehe aber die veränderung nur dann wenn ich eben scrolle (und dementsprechend, die Tabelle neu nachgeladen wird)...

    ich hoffe das es nicht allzu durcheinander klingt...
  • oke jetz hab ichs soweit kapiert...dann hätte ich da eine andere Frage:

    Beim Klick ins Textfeld wird eine Methode aufgerufen - wie übergebe ich dieser Methode den indexPath.row & indexPath.section - Mein Ziel ist es nebenher ein Array zuführen und die daten dort abzuspeichern bzw. zu lesen...
    Das Problem ist gerade eben dass, dass hier kein direkter Bezug auf das row besteht...(zumindest denke ich mir das gerade..)
  • hmm...irgendwie mag gerade gar nix funktionieren...uitextfieldelegate reagiert gar nicht und auf valuechanged reagiert ebenfalls die methode nicht...
    hier mal stück code die definitiv aufgerufen wird seitens actionsheetpicker (wenn man done drückt)

    PHP-Quellcode

    1. - (IBAction)selectABlock:(id)sender {
    2. ActionStringDoneBlock done = ^(ActionSheetStringPicker *picker, NSInteger selectedIndex, id selectedValue) {
    3. if ([sender respondsToSelector:@selector(setText:)]) {
    4. [sender performSelector:@selector(setText:) withObject:selectedValue];
    5. }
    6. };
    7. }


    der textfield, wie erwähnt reagiert auf keine delegates und auch nciht auf die funktion...ich prüfe aber gerade nochmal...
  • yaaaaa :D :D :D
    zunächst vielen vielen Dank an macmoonshine, spiel da schon seit über 20h rum (zu lange).

    lösung folgendes, eigentlich hätt ich nur mitdenken sollen :D

    PHP-Quellcode

    1. - (IBAction)selectABlock:(id)sender forEvent:(UIEvent *)event {
    2. UITouch *theTouch = event.allTouches.anyObject;
    3. CGPoint thePoint = [theTouch locationInView:self.myTableView];
    4. NSIndexPath *theIndexPath = [self.myTableView indexPathForRowAtPoint:thePoint];
    5. //test
    6. NSLog(@"sec:%i row:%i",theIndexPath.section,theIndexPath.row);
    7. ActionStringDoneBlock done = ^(ActionSheetStringPicker *picker, NSInteger selectedIndex, id selectedValue) {
    8. if ([sender respondsToSelector:@selector(setText:)]) {
    9. [sender performSelector:@selector(setText:) withObject:selectedValue];
    10. }
    11. };
    Alles anzeigen

    ich hatte dies über IB gemacht daher wollte er zunächst mein selectABlock nicht aufrufen (da es ja vorher ohne event aufgerufen wurde), nachdem ich es dann neu verbunden hatte lief es perfekt.
    nochmals vielen dank...