UITextField resignFirstResponder无法正常工作?

时间:2010-04-19 02:44:58

标签: iphone ios uitextfield resignfirstresponder

我已经仔细检查了nib文件中的所有连接。我的代码 -

// 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];
}

我使用了UIView (UIControl)的子类,并在“界面”构建器中添加了所有UI元素。UIControl's touchDown方法与backgroundTap方法相关联。

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

因此键盘不会像预期的那样被删除。不知道为什么。

感谢您的帮助! 的Teja。

1 个答案:

答案 0 :(得分:2)

DyingCactus指出了你的错误。您将使用完全不同的控件替换控件的NIB版本,丢失指向NIB中的指针。当你拨打resignFirstResponder时,你会在你的重复对象上调用它,而不是实际在屏幕上的对象。摆脱对{NIB中有线连接的allocinit调用。