Swift 如何从文本字段获取数字输入?

Swift 如何从文本字段获取数字输入?,swift,Swift,我会马上回答这个问题 var a = 0 var b = 20 我想让一个用户把数字输入到TextField中,我可以把这个数字保存到变量a中。然后我想做一个if语句,其中 if a == b { //code } 我遇到的问题是从文本字段中获取数字输入 您可以检查文本字段中的输入以获取数字 迅捷4 试试这个类函数 class SourceVC: UIViewController { @IBOutlet weak var sampleTF: UITextField!{

我会马上回答这个问题

var a = 0 
var b = 20
我想让一个用户把数字输入到TextField中,我可以把这个数字保存到变量a中。然后我想做一个if语句,其中

if a == b {
    //code
}

我遇到的问题是从文本字段中获取数字输入

您可以检查文本字段中的输入以获取数字

迅捷4


试试这个类函数

class SourceVC: UIViewController
{
    @IBOutlet weak var sampleTF: UITextField!{
        didSet{
            sampleTF.delegate = self
        }
    }
    /// TF value
    var a : Int = 0
    var b : Int = 20

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    /// Assuming this button action to get Value from TF
    @IBAction func naviagteToDestination(_ sender: Any)
    {
        a = Int((sampleTF.text?.trimmingCharacters(in: .whitespaces))!)!

        if a == b {
            print("Execute")
        }
        else{
            print("Dont Execute")
        }
    }
}

extension SourceVC : UITextFieldDelegate
{
    /// This will Limit TF to accept only Numbers
    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
    {
        let allowedCharacters = CharacterSet.decimalDigits
        let characterSet = CharacterSet(charactersIn: string)
        return allowedCharacters.isSuperset(of: characterSet)
    }
}

你想什么时候在点击提交按钮时从TF处获取号码?是的,如果TF只接受号码,在操作按钮下是否可以?对于这种情况,TF应该只接受number-only-guard let num=InttextField.text-else{return}let a=num不可能的重复项,为什么要将一个保护与强制展开合并?这毫无意义。你的编辑更糟糕,因为现在如果输入的值不是有效的Int,应用程序将崩溃。但是我使用characterset来确保在TF中输入的文本是Int值,我仍然想知道如何才能使这一点正确。例如,请参阅其他答案。基本上,避免碰撞导致强制展开。
class SourceVC: UIViewController
{
    @IBOutlet weak var sampleTF: UITextField!{
        didSet{
            sampleTF.delegate = self
        }
    }
    /// TF value
    var a : Int = 0
    var b : Int = 20

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    /// Assuming this button action to get Value from TF
    @IBAction func naviagteToDestination(_ sender: Any)
    {
        a = Int((sampleTF.text?.trimmingCharacters(in: .whitespaces))!)!

        if a == b {
            print("Execute")
        }
        else{
            print("Dont Execute")
        }
    }
}

extension SourceVC : UITextFieldDelegate
{
    /// This will Limit TF to accept only Numbers
    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
    {
        let allowedCharacters = CharacterSet.decimalDigits
        let characterSet = CharacterSet(charactersIn: string)
        return allowedCharacters.isSuperset(of: characterSet)
    }
}