Swift - 如何在正确答案之后仍允许文本字段仍然识别空格仍然是正确的答案 [英] Swift - how do I allow the textfield to still recognize spaces after the correct answer inputed as still the correct answer
问题描述
我正在进行测验,其中有一个文本字段,用户输入答案。但是,我希望它能够识别正确答案后的空格仍然正确。例如,如果答案为红色并且用户在红色后输入带有空格的红色,则仍将其识别为正确答案。以下是我的代码。请提前告知我并感谢您的所有帮助!
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屋!