【问题标题】:Setting delegate for UITextField produces error为 UITextField 设置委托会产生错误
【发布时间】:2016-04-12 01:13:45
【问题描述】:

我有一个带有原型单元格的表格视图和一个自定义表格视图单元格类。在其中一个原型单元格中,我有一个 UITextField。我试图在按下返回键时关闭键盘,为此我正在使用函数textFieldShouldReturn 并试图将我的 UITextView 的委托设置为self(inputText.delegate = self)。不幸的是,如果没有将委托设置为 self ,在按下返回时不会发生任何事情,并且使用 inputText.delegate = self 行,应用程序崩溃并出现错误 fatal error: unexpectedly found nil while unwrapping an Optional value

这是我的自定义表格视图单元格文件。

import UIKit

class CustomTableViewCell: UITableViewCell, UITextFieldDelegate {

@IBOutlet weak var inputLabel: UILabel!
@IBOutlet weak var inputText: UITextField!
@IBOutlet weak var labelLabel: UILabel!
@IBOutlet weak var labelDetail: UILabel!
@IBOutlet weak var picker: UIPickerView!
@IBOutlet weak var largeInputText: UITextField!

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code

    inputText.delegate = self

}

func textFieldShouldReturn(textField: UITextField) -> Bool {
    print("return button in CustomTableViewCell")
    inputText.resignFirstResponder()
    return true

}

override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    // Configure the view for the selected state
}

}

任何帮助将不胜感激。

【问题讨论】:

  • 表示您的文本字段未在界面构建器中正确连接

标签: ios swift delegates uitextfield


【解决方案1】:

可能是其中一个原因导致您收到此错误。

  1. 您可能没有在界面生成器中指定原型单元的类。见下文

  1. 您可能没有正确设置 IBOutlet 属性。单击原型单元格中的标签后,在上面显示的侧栏的最后一个选项卡中检查此内容。

注意:确保您也为表视图控制器或视图控制器设置了自定义类。

【讨论】:

    【解决方案2】:

    尝试从 viewDidLoad() 调用 awakeFromNib() ;然后您可以选择需要编辑的键盘类型: inputTextFile.keyboardType = UIKeyboardType.ASCIICapable/EmailAddress/etc

    【讨论】:

      猜你喜欢
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多