Formatter у iOS-у је механизам форматирања унетих података који аутоматски претвара неструктуирани текст у одређени формат. Системске класе NSFormatter и InputMask омогућују обраду бројева телефона, кредитних картица, датума и других структуираних података. Према Apple Foundation Framework Reference (2025), правилно форматирање уноса смањује број грешака при попуњавању образаца за 55% и убрзава унос података за 30%.
Главно
Formatter у iOS-у је компонента која претвара необрађени кориснички унос у структуирани формат према одређеном обрасцу. За разлику од једноставне валидације након слања формулара, форматер ради у реалном времену, коригујући приказ података како се уносе. Ово је кључна разлика: корисник види форматирани резултат одмах, без потребе да рочно уноси раздвојнике.
iOS пружа неколико нивоа форматирања: системске Foundation форматере (NumberFormatter, DateFormatter, ByteCountFormatter) за приказ података, PhoneNumberKit оквир за телефонске бројеве и библиотеке трећих страна InputMask за произвољне маске уноса.
Према Apple Human Interface Guidelines, форматери уноса решавају три задатка: смањују когнитивно оптерећење корисника, смањују број грешака и убрзавају попуњавање образаца.
Форматери су посебно важни за мобилне уређаје. Аутоматско постављање раздвојника смањује број дотицаја за 20–40% за типичне формате.
Форматери уноса у iOS-у се деле на три категорије.
NumberFormatter форматира нумеричке вриједности. DateFormatter претвара датуме и време у локализоване низове.
PhoneNumberKit — Apple-ова библиотека за форматирање телефонских бројева.
Библиотеке трећих страна InputMask пружају универзални механизам маскирања уноса: бројеве картица (0000 0000 0000 0000), датуме (ДД.ММ.ГГГГ).
| Тип | Оквир | Намена | Начин рада |
|---|---|---|---|
| Бројеви | NumberFormatter | Новац, проценти | Приказ |
| Датуми | DateFormatter | Датум, време | Приказ |
| Телефони | PhoneNumberKit | Бројеви према стандардима | Унос + валидација |
| Маске | InputMask | Картице, кодови | Унос у реалном времену |
NSFormatter — апстрактна Foundation класа која дефинише методе string(for:) и getObjectValue(_:for:errorDescription:). Apple препоручује коришћење постојећих Foundation форматера.
Input Mask — образац који аутоматски поставља раздвојнике током уношења. Најпопуларнија библиотека за iOS — InputMask од RedMadRobot.
Formatiranje telefonskih brojeva — najčešći scenarij korišćenja formatatera u iOS-u. Od iOS 16 je dostupan ugrađeni mehanizam za formatiranje telefonskih brojeva.
Implementacija formatatera u Swift-u zavisi od pristupa.
import PhoneNumberKit
class PhoneViewController: UIViewController {
let phoneNumberKit = PhoneNumberKit()
@IBOutlet var phoneField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
phoneField.delegate = self
}
}
extension PhoneViewController: UITextFieldDelegate {
func textField(
_ textField: UITextField,
shouldChangeCharactersIn range: NSRange,
replacementString string: String
) -> Bool {
guard let text = textField.text else { return true }
let partial = (text as NSString).replacingCharacters(in: range, with: string)
textField.text = partial.applyPhoneMask()
return false
}
}
Za NumberFormatter od iOS 15+ koristi se formatter svojstvo na UITextField.
let amountField = UITextField()
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.locale = Locale(identifier: "ru_RU")
amountField.formatter = formatter
Za InputMask RedMadRobot podešavanje se vrši kroz delegat.
import InputMask
class CardViewController: UIViewController {
@IBOutlet var cardField: UITextField!
var listener: MaskedTextFieldDelegate!
override func viewDidLoad() {
super.viewDidLoad()
listener = MaskedTextFieldDelegate(
primaryMaskFormat: "[0000] [0000] [0000] [0000]"
)
cardField.delegate = listener
}
}
Često postavljana pitanja
Za telefonske brojeve — PhoneNumberKit.
Da, UITextView podržava iste delegate kao UITextField.
Paste se obrađuje kroz shouldChangeCharactersIn delegat.
Ne, email nema fiksni format.
Moderni formatateri obrađuju unos za manje od 1 ms po znaku.
Zakljucak
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође