【问题标题】:App crashes when moving quickly between textfields在文本字段之间快速移动时应用程序崩溃
【发布时间】:2014-04-21 20:14:39
【问题描述】:

我有一个文本字段列表,当您按下返回按钮时,它会转到下一个字段,直到它摆脱键盘时才转到下一个字段。这一切对我来说都很好,但是当我快速浏览列表时,应用程序崩溃并且我收到了这个错误:

*** Assertion failure in NSDictionary *_UIRecordArgumentOfInvocationAtIndex(NSInvocation *, NSUInteger, BOOL)(), /SourceCache/UIKit/UIKit-2380.17/UIAppearance.m:1118

这是我用来在文本字段之间切换的代码:

-(BOOL) textFieldShouldReturn:(UITextField *)textField {
    if (textFieldNo == i) {
        [textField resignFirstResponder];
    } else {
        [[self.view viewWithTag:textFieldNo + 1] becomeFirstResponder];
    }
    return NO;
}

请给我一些关于如何解决这个问题的建议

提前致谢

编辑

事实证明,导致错误的不是我快速浏览文本字段,实际上是当我辞职时,我不小心按下了下面的广告。这只是最近的一个问题,我很想知道为什么会发生这种行为

【问题讨论】:

  • 显示跳转到下一个文本字段的代码
  • 你去@Houssni
  • textFieldNoi 定义在哪里?
  • .h 文件中的@Houssni
  • 你是否每次都重置i值?

标签: ios iphone objective-c ios6 uitextfield


【解决方案1】:

辞职后尝试返回YES

   -(BOOL) textFieldShouldReturn:(UITextField *)textField {
        if (textFieldNo == i) {
           [textField resignFirstResponder];

        } else {
            [[self.view viewWithTag:textFieldNo + 1] becomeFirstResponder];

        }
        return YES;
    }

【讨论】:

  • 虽然没有去掉最后一个键盘,但也没有崩溃
  • 是的。抱歉,我错误地调用了 API。请查看我的更新答案
  • 添加“return NO;”怎么样? “[textField resignFirstResponder];”之后?
【解决方案2】:

我发现答案与问题的标题完全无关,解决方案是,由于该应用程序在 ios 6 和 7 中运行,我有一些仅在 ios 7 中运行的标题,当它打开广告时它崩溃了因为这个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 2018-06-26
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多