【问题标题】:Dismiss keyboard button doesn't work 0 iOS关闭键盘按钮不起作用 0 iOS
【发布时间】:2012-07-24 05:17:52
【问题描述】:

由于某种原因,在我的应用程序中,右下角的关闭键盘按钮永远不起作用。我可以在 UITextField 上正确使用 resignFirstResponder,但是如果用户尝试使用该按钮,则什么也不会发生。有什么想法吗?

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
    NSLog(@"shouldend");
    return YES;
}

- (BOOL) textFieldShouldBeginEditing:(UITextField *)textField {
    NSLog(@"should begin");
    return YES;
}

附加信息:这是整个应用程序的问题。该按钮在我的应用程序的任何文本字段中都不起作用。

【问题讨论】:

标签: ipad uitextfield


【解决方案1】:

你可能需要实现UITextFieldDelegate方法– textFieldShouldEndEditing:

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
    return YES;
}

要测试发生了什么,您还可以在– textFieldDidBeginEditing:– textFieldDidEndEditing: 中输入简单的NSLogs。这将告诉您是否正在接收手势。

【讨论】:

  • shouldBegin 被正确调用,但 shouldEnd 从未被调用,didEnd 也不会。按下回车按钮时,ShouldReturn 也会被正确调用。
  • 确保连接设置正确。如果使用 IB,请确保将连接从 UITextField 拖到第一响应者。如果以编程方式进行设置,请务必设置委托。
  • 你是什么意思拖动连接到第一响应者?委托已设置,但我以前从未与第一响应者联系过。它应该连接到哪个第一响应者?
  • @Brodie:如果设置了委托,那么didEndshouldEnd 都应该被调用。
  • 非常正确 - 但是委托是在 IB 中设置的,我什至只是在代码中设置了委托以确保。由于某种原因,他们仍然没有被召唤。奇怪,因为正在调用其他方法。用我的代码更新了问题。
猜你喜欢
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-17
  • 2013-03-23
  • 2011-09-15
  • 2016-03-10
  • 1970-01-01
相关资源
最近更新 更多