2016-04-02 11 views
3

Bu kodu kullandım ancak şu anda kullandığım sorun, eğer texfield boşsa (dizin dışı) "-" Ben yapabilecekleriniz hakkındaGirilen rakamları biçimlendirmek üzere ABD telefon numarasına biçimlendirin (###) ### - ####

Herhangi fikirleri

kullanıcı telefonu numarasını değiştirmek ve Kaydet düğmesini vurmazsa ve diğer mesele o "((" ve kodu yeniden yürütmek ve ekler.? .
var stringts: NSMutableString = self.ts.text 
stringts.insertString("(", atIndex: 0) 
stringts.insertString(")", atIndex: 4) 
stringts.insertString("-", atIndex: 5) 
stringts.insertString("-", atIndex: 9) 
self.ts.text = stringts 
+0

Metin girerken biçimlendiriyor musunuz? –

+0

Bu özelliği istiyorum, ancak kodum "Kaydet" i tıkladıktan sonra metin alanını formatlıyor –

+0

Bir dakika bekleyin, bunu yaptım! –

cevap

6

kullanıcının gönderdiği girerken giriş doğrulamak bunu KullanabileceğinizAnalytics:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { 

    let str = (textField.text! as NSString).stringByReplacingCharactersInRange(range, withString: string) 

    if textField == txtFieldPhoneNumber{ 

     return checkEnglishPhoneNumberFormat(string, str: str) 

    }else{ 

     return true 
    } 
} 

Fonksiyon girişi doğrulamak için:

func checkEnglishPhoneNumberFormat(string: String?, str: String?) -> Bool{ 

    if string == ""{ //BackSpace 

     return true 

    }else if str!.characters.count < 3{ 

     if str!.characters.count == 1{ 

      txtFieldPhoneNumber.text = "(" 
     } 

    }else if str!.characters.count == 5{ 

     txtFieldPhoneNumber.text = txtFieldPhoneNumber.text! + ") " 

    }else if str!.characters.count == 10{ 

     txtFieldPhoneNumber.text = txtFieldPhoneNumber.text! + "-" 

    }else if str!.characters.count > 14{ 

     return false 
    } 

    return true 
} 

Umut bu yardımcı olur!

+0

Hangi işlevi çağırmam gerekiyor? Bir örnek verebilir misiniz, nasıl çağırırsınız? Teşekkür ederim! –

+0

@RayKing Sadece "UITextField" 'a "delege" vermeniz gerekiyor. i.e .: 'yourTextFieldOutlet.delegate = self' –

+0

Bu kodla ilgili bir hatam var. Diğer textFields, telefon numarasını yazarken değerlerini değiştiriyor. Onlar da bu delege tarafından yetkilendirilmeyi ve bu koddan etkilenmeyi seçtiler. –

İlgili konular