Swift - 如何在正确答案之后仍允许文本字段仍然识别空格仍然是正确的答案 [英] Swift - how do I allow the textfield to still recognize spaces after the correct answer inputed as still the correct answer

查看:87
本文介绍了Swift - 如何在正确答案之后仍允许文本字段仍然识别空格仍然是正确的答案的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在进行测验,其中有一个文本字段,用户输入答案。但是,我希望它能够识别正确答案后的空格仍然正确。例如,如果答案为红色并且用户在红色后输入带有空格的红色,则仍将其识别为正确答案。以下是我的代码。请提前告知我并感谢您的所有帮助!

I am making a quiz where there is a textfield and the user enters an answer. However, I want it to recognize that a space after the correct answer is still correct. For example if the answer is Red and the user enters Red with a space after Red, it is still recognized as the correct answer. Below is my code. Please let me know and thanks for all your help in advance!

import Foundation

import UIKit

class Case1Q3ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var nextButton: UIButton!
    @IBOutlet var questionLabel: UILabel!

    @IBOutlet var correctAnswerLabel: UILabel!

    @IBOutlet var inputTextField: UITextField!

    var enteredAnswer: String?

    var correctAnswer = "Well demarcated"

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(InputViewController1.keyboardWillShow(_:)), name: UIKeyboardWillShowNotification, object: nil)
        NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(InputViewController1.keyboardWillHide), name: UIKeyboardWillHideNotification, object: nil)

        inputTextField.delegate = self

        titlesForLabels()
        nextButton.enabled = false
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func titlesForLabels() {
        questionLabel.text = "Describe the borders"
        correctAnswerLabel.text = correctAnswer
        correctAnswerLabel.hidden = true

        inputTextField.text = nil
        inputTextField.enabled = true
    }

    func keyboardWillShow(notification: NSNotification) {
        let userInfo = notification.userInfo!

        let keyboardFrame = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue()

        UIView.animateWithDuration(0.1, animations: { () -> Void in
            self.view.frame.origin.y = -keyboardFrame.size.height
        })
    }

    func keyboardWillHide() {
        UIView.animateWithDuration(0.1, animations: { () -> Void in
            self.view.frame.origin.y = 0
        })
    }

    func textFieldShouldReturn(textField: UITextField) -> Bool {
        textField.resignFirstResponder()

        enteredAnswer = textField.text

        checkForCorrectAnswer()

        return true
    }

    func checkForCorrectAnswer() {
        if enteredAnswer!.lowercaseString == correctAnswer.lowercaseString {
            print("Correct")
            correctAnswerLabel.textColor = UIColor.greenColor()
            correctAnswerLabel.text = "Correct!"
            nextButton.enabled = true

        } else {
            print("Wrong Answer")
            correctAnswerLabel.textColor = UIColor.redColor()
            correctAnswerLabel.text = "Incorrect! Please try again"
            nextButton.enabled = false

        }
        correctAnswerLabel.hidden = false
    }
    override func viewWillAppear(animated: Bool) {
        navigationItem.title = "Case 1 - Q3"
    }
}


推荐答案

在检查相等性之前,您应该修剪空格。您可以使用 stringByTrimmingCharactersInSet:方法用于此目的。

You should trim the whitespace before checking the equality. You can use the stringByTrimmingCharactersInSet: method for this purpose.

func checkForCorrectAnswer()
{
    let answer = enteredAnswer!.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
    if answer.lowercaseString == correctAnswer.lowercaseString
    {
        print("Correct")
        correctAnswerLabel.textColor = UIColor.greenColor()
        correctAnswerLabel.text = "Correct!"
        nextButton.enabled = true

    }
    else
    {
        print("Wrong Answer")
        correctAnswerLabel.textColor = UIColor.redColor()
        correctAnswerLabel.text = "Incorrect! Please try again"
        nextButton.enabled = false

    }
    correctAnswerLabel.hidden = false
}

这篇关于Swift - 如何在正确答案之后仍允许文本字段仍然识别空格仍然是正确的答案的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆