Question

Je l'ai vérifié deux fois toutes les connexions dans le fichier nib. Mon 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];
}

I ai utilisé une sous-classe de UIView (UIControl) et ajouté tous les éléments de l'interface utilisateur à elle dans le procédé d'interface builder.The de UIControl's touchDown est reliée à la méthode de backgroundTap.

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

Ainsi, le clavier n'est pas supprimé comme il est censé. Je ne sais pas pourquoi.

Merci pour l'aide! Teja.

Était-ce utile?

La solution

DyingCactus a souligné votre erreur. Vous remplacez la BNI-version du contrôle avec un contrôle complètement différent, perdre votre pointeur sur celui de la NIB. Lorsque vous appelez resignFirstResponder, vous appelez sur votre objet en double, pas celui qui est en fait à l'écran. Débarrassez-vous des appels alloc et init pour des choses par câble dans les NIB.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top