Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. import UIKit
  2.  
  3. class ViewController: UIViewController {
  4. var phoneNumberTextField : UITextField?
  5. var docController: UIDocumentInteractionController?
  6.  
  7. override func viewDidLoad() {
  8. super.viewDidLoad()
  9. phoneNumberTextField = UITextField(frame: CGRectMake(10, 150, 100, 50))
  10. phoneNumberTextField?.backgroundColor = UIColor.brownColor()
  11. self.view.addSubview(phoneNumberTextField!)
  12.  
  13.  
  14. }
  15.  
  16. func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
  17. {
  18. if (textField == phoneNumberTextField)
  19. {
  20. let newString = (textField.text! as NSString).stringByReplacingCharactersInRange(range, withString: string)
  21. let components = newString.componentsSeparatedByCharactersInSet(NSCharacterSet.decimalDigitCharacterSet().invertedSet)
  22.  
  23. let decimalString = components.joinWithSeparator("") as NSString
  24. let length = decimalString.length
  25. let hasLeadingOne = length > 0 && decimalString.characterAtIndex(0) == (1 as unichar)
  26.  
  27. if length == 0 || (length > 10 && !hasLeadingOne) || length > 11
  28. {
  29. let newLength = (textField.text! as NSString).length + (string as NSString).length - range.length as Int
  30.  
  31. return (newLength > 10) ? false : true
  32. }
  33. var index = 0 as Int
  34. let formattedString = NSMutableString()
  35.  
  36. if hasLeadingOne
  37. {
  38. formattedString.appendString("1 ")
  39. index += 1
  40. }
  41. if (length - index) > 3
  42. {
  43. let areaCode = decimalString.substringWithRange(NSMakeRange(index, 3))
  44. formattedString.appendFormat("(%@)", areaCode)
  45. index += 3
  46. }
  47. if length - index > 3
  48. {
  49. let prefix = decimalString.substringWithRange(NSMakeRange(index, 3))
  50. formattedString.appendFormat("%@-", prefix)
  51. index += 3
  52. }
  53.  
  54. let remainder = decimalString.substringFromIndex(index)
  55. formattedString.appendString(remainder)
  56. textField.text = formattedString as String
  57. return false
  58. }
  59. else
  60. {
  61. return true
  62. }
  63. }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement