Schütteln vs. Edit

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

  • Schütteln vs. Edit

    OK, jetzt habe ich das mit dem Schütteln hingekriegt, nachdem meine View beim viewDidAppear ein [self becomeFirstResponder] aufruft.

    Schade dabei ist nur, dass sämtlich UITextFields nun gar nicht mehr reagieren wollen. Weder erscheint die Tastatur, noch die speziellen DatePicker, die ich kurz vorher einigen Eingabefeldern spendiert habe.
    Sobald ich diese Zeile wieder auskommentiere, funktioniert die Eingabe wieder normal.

    Gibt es denn keine Möglichkeit, beides gleichzeitig zu haben: Texteingabe und eine View, die auf das Schütteln reagiert?
  • Bitte beschreibe deine Ausgangssituation genauer.
    Also irgendeine View wird FirstResponder, und bekommt daraufhin mitgeteilt, wenn geschüttelt wird. Darauf hin reagieren andere Views nicht mehr. Hat meine Glaskugel es richtig zusammengefasst?
    Sind die DontReactViews subviews des SchüttelMerkerViews?
    Warum bekommt überhaupt ein View eine Schüttelgeste mitgeteilt? Sollte das nicht eher in den Controller?

    LG David
  • lasergans schrieb:

    Bitte beschreibe deine Ausgangssituation genauer.
    Also irgendeine View wird FirstResponder, und bekommt daraufhin mitgeteilt, wenn geschüttelt wird. Darauf hin reagieren andere Views nicht mehr. Hat meine Glaskugel es richtig zusammengefasst?
    Sind die DontReactViews subviews des SchüttelMerkerViews?
    Warum bekommt überhaupt ein View eine Schüttelgeste mitgeteilt? Sollte das nicht eher in den Controller?
    Sorry, ich war zu unkonzentriert :S

    Ich meinte natürlich einen Controller, der eine UIScrollView enthält, die wiederum ein paar Labels und die besagten Eingabefelder (UITextFields) enthält.

    Quellcode

    1. @interface XmlViewController : UIViewController


    Das Ereignis bearbeite ich hier:

    Quellcode

    1. -(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event{
    2. BOOL mustEnd = NO;
    3. if (event.subtype == UIEventSubtypeMotionShake) {
    4. DLog(@"Shaking Stevens detected...");
    5. mustEnd = YES;
    6. }
    7. if ([super respondsToSelector:@selector(motionEnded:withEvent:)])
    8. [super motionEnded:motion withEvent:event];
    9. if (mustEnd) {
    10. [[self parentViewController] dismissModalViewControllerAnimated:YES];
    11. }
    12. }
    13. -(BOOL)canBecomeFirstResponder {
    14. return YES;
    15. }
    Alles anzeigen


    Der FirstResponder wird beim Anzeigen und Entfernen des Controllers gesetzt:

    Quellcode

    1. - (void)viewDidAppear:(BOOL)animated {
    2. [self becomeFirstResponder];
    3. [super viewDidAppear:animated];
    4. }
    5. - (void)viewDidDisappear:(BOOL)animated {
    6. [self resignFirstResponder];
    7. [super viewDidDisappear:animated];
    8. }



    Die Eingabefelder erzeuge ich vorher in einer anderen Klasse und weise sie der UIScrollView zu.

    Quellcode

    1. [vController.scrollviewProcess addSubview:editObject];


    Wie gesagt, funktioniert das Schütteln für sich genommen prima, wie auch die Edits super zu bedienen sind, wenn ich auf das Schütteln verzichte.

    Ich hoffe, jetzt brauchst du deine Kristallkugel nicht mehr. Anderenfalls schicke ich dir noch etwas Kaffesatz ... ^^