2016-06-19 5 views
0

テキストフィールドがあり、ユーザーが回答を入力するクイズを作成しています。しかし、正しい答えの後のスペースがまだ正しいことを認識してほしい。たとえば、答えが赤でユーザーが赤の後にスペースを入れて赤を入力すると、それは正しい答えとして認識されます。以下は私のコードです。私に教えてください、そして、あなたのすべての助けをありがとう!Swift - 正しい答えが正解として入力された後に、テキストフィールドに空白を認識させる方法を教えてください。

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" 
    } 
} 
+0

@Alexこれは私の他の質問とどのように重複していますか?私の他の質問は、正解が選択された後にだけ、次の質問ボタンを表示させる方法について質問していました。 この質問では、クイズのテキストフィールドの部分を、最後にスペースが追加されても認識できるようにする方法を質問しています これらは同じ質問ではありません – Babz

+0

リンクの意図はこの正確な質問を指していたので間違っていました。私は以前のコメントを削除しました。 – Alex

答えて

1

:あなたのケースでは、このようなものを使用します。この目的でstringByTrimmingCharactersInSet:メソッドを使用できます。

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 
} 
+0

ありがとう!美しく働いた! – Babz

+0

@Babz:どうぞよろしくお願いいたします。ハッピーコーディング!!! –

+0

@Babzこれで問題が解決したら、チェックマークをクリックして回答を受け入れる必要があります。 –

-1

あなたはこのようなものを使用することができます

let str = "Hi How Are You" 
let newString = str.stringByReplacingOccurrencesOfString(" ", withString: "") 
print(newString) //This prints "HiHowAreYou" 

は、それからちょうど、ユーザーがスペースを入れずに、両方正解に答えて比較します。あなたが平等をチェックする前に空白をトリムする必要があり

if enteredAnswer.stringByReplacingOccurrencesOfString(" ", withString: "").lowercaseString == correctAnswer.stringByReplacingOccurrencesOfString(" ", withString: "").lowercaseString { 
//Answer Is Correct 

}

+0

私はコーディングと迅速に少し新しいです。私は申し訳ありませんが続いていません。だから私のコードでは、質問への正解は "プラーク"です。 「プラーク」も正しく(つまり、プラークの後にスペースがある)ことを認識させるにはどうすればよいですか?もしあなたが私のコードを編集してこれを表示できたら、大いに感謝します。 – Babz

+0

Q: "正しいspelligは何ですか: 'ファイル名'または 'ファイル名'ですか?どのように間違った答えを与えることができますか? –

関連する問題