我仔细检查过的笔尖文件中的所有连接。我的代码 -

// 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元素在界面中builder.The UIControl's touchDown方法被连接到backgroundTap方法。

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

所以键盘并没有像它应该删除。不知道为什么。

感谢您的帮助! 的Teja。

有帮助吗?

解决方案

DyingCactus指出你的错误。你跟一个完全不同的控制替代控制的NIB版本,失去你的指针之一的NIB。当你调用resignFirstResponder,你调用它的复制对象,而不是一个实际的屏幕上。摆脱allocinit呼吁的事情在NIB有线的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top