2016-04-28 13 views
1

私は迅速ですが、ObjectiveCのバックグラウンドからは、ボタンクリック時にテキストフィールドからvarに入力を取得しようとしました。swift - var(UITextField入力)から空白を削除しません。

"stringByTrimmingCharactersInSet"と他の多くのオプションを使用して空白を削除しようとしたところ、機能しません。ここに私のコードは、私はまた、新しいVARに結果を割り当てることで試してみました

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

が、まだ空白を削除することができませんでした、

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

    } 

です。私の推測では、私は "Unwrapped value"のコンセプトと混乱しています。誰かが私を助けてくれるなら、本当に役に立ちます。ありがとう!

+1

は、 'someVariable.stringByTrimmingCharactersInSetは'与えられた文字に含まれる文字列の文字の両端から取り除くことによって作られた新しい文字列を返します。 @ Anbuの答え – sschale

答えて

5

代替方法

urlInputComponent.text! = urlInputComponent.text!.stringByReplacingOccurrencesOfString(" ", withString: "") 

か、他これは、あなたが掃除を開始するために使用できるコードです。この

let trimmed = "".join(urlInputComponent.text!.characters.map({ $0 == " " ? "" : String($0) })) 
print (trimmed) 
+0

を参照してください。最初のオプションが有効です。私の悪い、私はそれを試して忘れてしまった。ありがとうございました。 –

1

を試してみてください。

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 
} 
1

スウィフトについて3あなたが使用することができます:あなたはドキュメントを見れば

//let myTextField.text = " Hello World" 

myTextField.text.replacingOccurrences(of: " ", with: "") 
// Result: "Helloworld" 
関連する問題