iphone - UITextField resignFirstResponder 不工作?

标签 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 的 touchDown 方法连接到 backgroundTap 方法。

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

所以键盘并没有像预期的那样被移除。不知道为什么。

感谢您的帮助! 泰迦。

最佳答案

DyingCactus 指出了您的错误。您正在用完全不同的控件替换控件的 NIB 版本,从而丢失了指向 NIB 中的控件的指针。当您调用 resignFirstResponder 时,您是在重复的对象上调用它,而不是实际在屏幕上的对象。摆脱对 NIB 中连接的事物的 allocinit 调用。

关于iphone - UITextField resignFirstResponder 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2664952/

相关文章:

ios - 在 TableViewController 和 ViewController 之间进行委托(delegate)

ios - 获取 IAP 原始购买日期?

iphone - UITextField 内阴影

iOS 文本字段,具有部分安全文本输入类型•••••••••••••••0000

iphone - 图片发布到 Facebook 最终出现在错误的位置

iphone - 在 iPhone 中创建一个简单的线图

iphone - 如何使用FMDB从表中删除所有数据

iphone - 尝试发出推送通知时出现 SSL Broken pipeline 错误

IOS 禁用 "Bluetooth pairing request"弹出窗口

Ios Swift 覆盖 UItextField 的双击