2009-08-15 7 views
0

ich meine app-Shake-Gesture-kompatibel zu machen, indem diese in meinem UIViewController tun:becomeFirstResponder scheint nur 1.es Mal für Schüttelbewegung arbeiten

- (void)viewWillAppear:(BOOL)animated 
{ 
    [self.view becomeFirstResponder]; 
    [super viewWillAppear:animated]; 
} 

Das Problem ist, dass, wenn ich zu einer anderen Ansicht Flip (I Ich benutze die "Utility App" Vorlage, die eine umgekehrte Ansicht und einen Root View Controller hat, um beide zu verwalten.) Die Shake-Geste hört auf zu arbeiten, wenn ich zurückkomme.

Ich sehe, dass die viewWillAppear-Methode aufgerufen wird, es scheint nur nicht, dass die Ansicht beim ersten Mal wieder First-Responder-Status erhält.

Antwort

2

Wer wusste .. Sie müssen den Anruf auf becomeFirstResponder in viewDidAppear statt viewWillAppear setzen.

+0

Ich hatte das gleiche Problem! Ich denke, ich fand die Antwort auf einem der App Dev Foren. –

+0

ja - das ist Arbeit und für mich, danke! –

1

Yup, das bestätigt es für mich ... Ich habe versucht, die Controller als FirstResponder von der Anwendung Delegate setzen. Inzwischen fand ich es sehr hilfreich für das Debugging, diese Log-Anweisung in strategische Methoden zu streuen.

NSLog(@"%s: I %s first responder! (%@)", __FUNCTION__, [self isFirstResponder] ? "am" : "am not", self); 

Auch mir zu erlauben, es zu beliebigen Zeiten auszulösen, aktiviert ich die „Orientierung“ Methode und setzen sie dort in.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
NSLog(@"%s: I %s first responder! (%@)", __FUNCTION__, [self isFirstResponder] ? "am" : "am not", self); 
return YES; 
} 
Verwandte Themen