【问题标题】:Result of call to 'becomeFirstResponder()' is unused UITextField inside UITableView调用“becomeFirstResponder()”的结果是 UITableView 中未使用的 UITextField
【发布时间】:2018-07-31 16:53:45
【问题描述】:

我正在尝试将光标放在 UITableView 内的第一个 UITextField 中,并让键盘显示为这样写的。

if (indexPath.row == 0) {
    cell.inputTextField.becomeFirstResponder()
}

但警告显示是这样的。

调用“becomeFirstResponder()”的结果未使用

如何将光标放在第一个 UITextField 并让 KeyBoard 显示?

【问题讨论】:

  • 你覆盖了becomeFirstResponder吗?
  • Cmd+点击becomeFirstResponder,看看它是否带你到becomeFirstResponder的UIKit实现。如果没有,那就是你的问题。

标签: ios swift uitableview uitextfield


【解决方案1】:

我在覆盖'becomeFirstResponder'时遇到它,如果你想删除它,你可以使用 @discardableResult

【讨论】:

  • 这应该是答案。谢谢。
【解决方案2】:

也许对于tableView的内容视图采取textfield的委托可以帮助解决这个问题。

【讨论】:

    【解决方案3】:

    由于becomeFirstResponder()返回一个Bool,你应该根据警告检查返回值。

    如果你不需要知道becomeFirstResponder是否成功,你应该写:

    let _ = cell.inputTextField.becomeFirstResponder()
    

    【讨论】:

    • 你也可以只做 _ = cell.inputTextField.becomeFirstResponder()
    • 奇怪的是,我到处都在使用becomeFirstResponder(),但没有收到任何警告。
    • @Sulthan 您是否设置了特殊的构建设置,例如GCC_WARN_UNUSED_VALUE == NO
    • 不。我收到许多其他电话的警告,但不是这个。试图找出原因。
    • @Sulthan:我认为这是不同 Swift 版本之间的不匹配。在 Swift 3 中,这应该是一个警告,但可能有一些 @discardableResult((warn_unused_result)) Objective-C-attribute 已被使用或删除 UIKit。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多