【问题标题】:UITextField nextResponder only works onceUITextField nextResponder 只工作一次
【发布时间】:2013-04-09 21:00:01
【问题描述】:

我有多个 UITextField 并尝试单击下一步以在它们之间切换。我已经为每个标签设置了 1-4。当我运行我的代码时,它会移动到第二个,但不会移动到第三个。如果我跳 textField.tag + 2;它会跳到第三个字段,但不会从那里继续前进。这是我的代码:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
theScrollView.frame = CGRectMake(theScrollView.frame.origin.x, theScrollView.frame.origin.y,
                                 theScrollView.frame.size.width, theScrollView.frame.size.height + 265 - 50); //resize

NSInteger nextTag = textField.tag + 1;
// Try to find next responder
UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder) {
    // Found next responder, so set it.
    [nextResponder becomeFirstResponder];
} else {
    // Not found, so remove keyboard.
    [textField resignFirstResponder];
}
return NO; // We do not want UITextField to insert line-breaks.
}

【问题讨论】:

  • 您是否检查过所有UITextField 对象都有其委托集?您是否尝试过调试具有textfield 标记的值?您是否确保视图层次结构中没有重复的标签?顺便说一句,您应该检查viewWithTag 中返回的UIView 实际上是一个UITextField 对象。
  • 哇,是代表。我瞎了!谢谢!想要将其发布为回复,以便我选择答案?
  • 我在下面添加了答案。感谢您的投票:)

标签: ios uitextfield next first-responder uiresponder


【解决方案1】:

我会审查以下项目:

  1. 检查所有UITextField 对象是否都有其委托集
  2. 启动调试器并检查每个textfield标签的值
  3. 确保视图层次结构中没有重复的标签
  4. 测试viewWithTag:中返回的UIView对象实际上是UITextField对象。

【讨论】:

    猜你喜欢
    • 2012-03-31
    • 1970-01-01
    • 2017-01-06
    • 2018-06-22
    • 2015-09-18
    • 2013-12-31
    • 1970-01-01
    • 2013-09-28
    • 2013-03-30
    相关资源
    最近更新 更多