【问题标题】:Force Unwrap Optionals from UITextfield从 UITextfield 强制展开选项
【发布时间】:2017-04-30 16:14:55
【问题描述】:

我正在尝试从 UITextfield 获取一个值,它作为可选返回。我已经尝试过建议的强制展开方法,但我仍然收到 Optional("WhateverUserInputHere") 而不是 'WhateverUserInputHere'。我也一直在寻找一种方法来确保在检索值之前文本字段不为空,以防止在强制展开时崩溃。截至目前,在用户点击按钮移动到下一个屏幕后检索该值,并且该按钮仅在用户开始编辑文本字段时启用。但是,如果他们决定删除文本字段中的所有内容,他们仍然可以继续前进。有什么方法可以防止这种情况/确保仅在用户完成输入并且文本字段不为空时才启用按钮?

// Variable used to store value from textfield    
var nametemp:String?
    var name:String = ""

    @IBOutlet weak var NameInput: UITextField!
    @IBOutlet weak var NextButton: UIButton!
    @IBOutlet weak var TestLabel: UILabel!


// Enables button when textfield has been edited
    @IBAction func NameInputEditingDidChange(_ sender: Any) {
        NextButton.isEnabled = true
    }

   // When button is used, value of textfield is retrieved
    @IBAction func NextButtonVariableTest(_ sender: Any) {
        nametemp = String(describing: NameInput.text)
        name = nametemp!
// Label returns optional value

TestLabel.text = "Hello" + name

    }

}

【问题讨论】:

    标签: swift uitextfield


    【解决方案1】:

    简单使用

    self.name = NameInput.text!
    

    self.name = NameInput.text ?? ""
    

    一旦您使用String(describing:)Optional(...) 文本将成为您的字符串的一部分,而不是可选字符串,您将无法删除它。

    【讨论】:

    • 谢谢!这正是我一直在寻找的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 2018-07-17
    • 2015-08-26
    • 2019-01-29
    相关资源
    最近更新 更多