KeyboardDidHide notification in verschieenen Klassen fangen.

  • KeyboardDidHide notification in verschieenen Klassen fangen.

    Kurze Erklärung. Es gibt mehrere Klassen die nebenneinander existieren. Sie sind Tableviecontroller mit Tabellenr drin. wenn diese Tabellen länger sind als der Bildschirm kann man sie scrollen. scrollt man hin und her wird jedes mal wenn eine Zelle in den Sichtbereich kommt die Zelle neu geladen (der wert in der Zelle kommt aus einer db). wenn ich nun in diese zellen teltfelder mach um werte einzutippern und dann hin-und-her scrolle, dann ist die änderung weg und der ursprungswert steht wieder drin. da hab ich mir überlegt jedes mal wenn das keyboard zugeht ( keyboarddidhidenotification) speichere ich meine eingaben zwischen und beim reload der zelle frage ich ab ob etwas in der variablen steht. tut es das, wird dieser wert genommen. Ganz unten habe ich einen save button der alles in die db schreibt. wird dr betätigt schreibe ich den geänderten wert in die db und die variablen werdne auf null gesetzt.

    soweit so gut.

    die KeyboardDidHideNotification fange ich in der Funktion

    Quellcode

    1. - (void) keyboardDidHide:(NSNotification *)note {
    2. if (tmpWidth != [widthTextField.text intValue]) {
    3. tmpWidth = [widthTextField.text intValue];
    4. }
    5. if (tmpHeight != [heightTextField.text intValue]) {
    6. tmpHeight = [heightTextField.text intValue];
    7. }
    8. }


    darin werden jetzt (beispielhaft) 2 werte zwischengespeichert.

    Das problem ist, dass ich die Methode in verschiedenen Klassen ausprogrammiert habe und wenn ich in klasse C das keyboard öffne um eine änderung einzugeben und dann schließe wird die Methode aus Klasse A ausgeführt.
    Wie bekomme ich es nun zu unterscheiden wo ich die änderung gemaht habe und dementsprechend die Methode der jeweiligen klasse aufzurufen?

    In der Notification, die man bekommt steht nicht drin woran das keybord geöffnet worden ist. jemand ne Idee?
  • ich hab kurz nach den observern gegoogelt welche möglichkeiten ich da habe. hab kurz was probiert das funzt aber noch nicht .

    Quellcode

    1. [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardDidHide:) name:@"KeyboardDidHideNotification" object:nil];
  • jo sry habs gestern nicht mehr geschafft hier rein zu posten. hat geklappt mit folgendem code:

    Quellcode

    1. -(void)viewWillAppear:(BOOL)animated {
    2. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:nil];
    3. }