4

私はSwiftを初めて使用しますが、ObjectiveCのバックグラウンドから、ボタンのクリックでテキストフィールドから変数への入力を取得しようとしました。

今、「stringByTrimmingCharactersInSet」と他の多くのオプションを使用して空白を削除しようとしたとき、それは機能しません。ここに私のコードがあります、

    var someVariable = urlInputComponent.text!
    if someVariable.containsString(" "){
        someVariable = someVariable.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
        print(someVariable)

    }

結果を新しいvarに代入してみましたが、

        let trimmed: String = someVariable.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
        print(trimmed)

それでも空白を削除できませんでした。私の推測では、「ラップされていない値」の概念を混同していると思います。誰かが私を助けてくれれば本当に助かります。ありがとう!

4

4 に答える 4

2

Swift 3の場合、以下を使用できます。

//let myTextField.text = " Hello World"

myTextField.text.replacingOccurrences(of: " ", with: "")
// Result: "Helloworld"
于 2017-08-02T18:42:29.360 に答える
2

これは、クリーニングを開始するために使用できるコードです。

extension String {
    func condenseWhitespace() -> String {
        let components = self.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).filter({!Swift.isEmpty($0)})
        return " ".join(components)
    }
}

var string = "  Lorem   \r  ipsum dolar   sit  amet. "
println(string.condenseWhitespace())

このデリゲート メソッドもコードに追加します。

 func textField(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementString string: String!) -> Bool {
       if range.location == 0 && string == " " {
           return false
       }
       return true
 }
于 2016-04-28T07:14:20.257 に答える