Frage

Ich habe doppelt geprüft, alle Verbindungen in der Nib-Datei. Mein Code -

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"iphone_bg_login.png"]];
    self.title = @"Login screen";
    loginTxt = [[UITextField alloc] init];
    pwdText = [[UITextField alloc] init];
    loginFailedTxt = [[UILabel alloc] init];
    loginBtn = [[UIButton alloc] init];
    navAppDelegate = (NavAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    navAppDelegate.navController.navigationBarHidden = YES;
    //NSArray *subVs = (NSArray *) [self.view subviews];
    [super viewDidLoad];
}

Ich habe eine Unterklasse von UIView (UIControl) verwendet und alle UI-Elemente, um es in der Schnittstelle builder.The UIControl's touchDown Verfahren wird backgroundTap Verfahren verbunden worden.

-(IBAction) backgroundTap:(id) sender {
    [loginTxt resignFirstResponder];
    [pwdText resignFirstResponder];
    //[[UIApplication sharedApplication] becomeFirstResponder];
        //[sender resignFirstResponder];
} 

So wird die Tastatur nicht entfernt, wie es soll. Nicht sicher, warum.

Danke für die Hilfe! Teja.

War es hilfreich?

Lösung

DyingCactus wird Ihren Fehler hingewiesen. Sie ersetzen die NIB-Version der Steuerung mit einer ganz anderen Steuerung, Ihre Zeiger auf die man in der NIB zu verlieren. Wenn Sie resignFirstResponder nennen, sind Sie es auf Ihrem doppelte Objekt aufrufen, nicht derjenige, der tatsächlich auf dem Bildschirm ist. Holen Sie sich für die Dinge der alloc und init Anrufe los in der NIB verdrahtet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top