- August 28, 2025
- Mins Read
Get Started | Examples | Customize | Features | Install | Pricing
iPhoneNumberField(“Phone”, text: $text)
Install iPhoneNumberField.
Add iPhoneNumberField to your project.
import SwiftUI
import iPhoneNumberField
struct ContentView: View {
@State var text = “”
var body: some View {
iPhoneNumberField(“Phone”, text: $text)
}
}
iPhoneNumberFieldShow the flag, and make it selectable, so your users can find their region
import SwiftUI
import iPhoneNumberField
struct ContentView: View {
@State var text = “”
var body: some View {
iPhoneNumberField(text: $text)
.flagHidden(false)
.flagSelectable(true)
.font(UIFont(size: 30, weight: .bold, design: .rounded))
.padding()
}
}
Use iPhoneNumberField’s optional binding and programmatically change the text field.
import SwiftUI
import iTextField
import iPhoneNumberField
struct ContentView: View {
@State var nameText = “”
@State var phoneText = “”
@State var phoneEditing = false
var body: some View {
VStack {
TextField(“Name”, text: $nameText)
.padding()
iPhoneNumberField(“Phone”, text: $phoneText, isEditing: $phoneEditing)
.font(UIFont(size: 24, weight: .light, design: .monospaced))
.padding()
}
}
}
Use our modifiers to create a fully customized field.
import SwiftUI
import iPhoneNumberField
struct ContentView: View {
@State var text: String = “”
@State var isEditing: Bool = false
var body: some View {
iPhoneNumberField(“(000) 000-0000”, text: $text, isEditing: $isEditing)
.flagHidden(false)
.flagSelectable(true)
.font(UIFont(size: 30, weight: .light, design: .monospaced))
.maximumDigits(10)
.foregroundColor(Color.pink)
.clearButtonMode(.whileEditing)
.onClear { _ in isEditing.toggle() }
.accentColor(Color.orange)
.padding()
.background(Color.white)
.cornerRadius(10)
.shadow(color: isEditing ? .lightGray : .white, radius: 10)
.padding()
}
}
iPhoneNumberField takes 2 required parameters: 1️⃣ a String placeholder, and 2️⃣ a binding to a phone number string. All customizations are built into our modifiers.
Example: Customize the text field style, and call a closure when editing ends.
iPhoneNumberField(“”, text: $text)
.accentColor(Color.green)
.clearsOnBeginEditing(true)
.clearButtonMode(.always)
.onEditingEnded { print(“DONE ✅”) }
Use our exhaustive input list to customize your view.
</table class=”table table-bordered”>
</table class=”table table-bordered”>
| Modifier | Description | |
|---|---|---|
| 🔠 | .font(_:) |
Modifies the text field’s font from a UIFont object. |
| 🎨 | .foregroundColor(_:) |
Modifies the text color of the text field. |
| 🖍 | .accentColor(_:) |
Modifies the cursor color while typing on the text field. |
| 🌈 | .placeholderColor(_:) |
Modifies the entire placeholder color of the text field. |
| 🖍 | .numberPlaceholderColor(_:) |
Modifies solely the phone number placeholder color of the text field – without the country code. |
| 🐠 | .countryCodePlaceholderColor(_:) |
Modifies solely the country code placeholder color of the text field – without the phone number. |
| ↔️ | .multilineTextAlignment(_:) |
Modifies the text alignment of a text field. |
| ☎️ | .textContentType(_:) |
Modifies the content type of a text field for implied formatting. |
| ▶️ | .clearsOnEditingBegan(_:) |
Modifies the clear-on-begin-editing setting of a text field. |
| 👆 | .clearsOnInsert(_:) |
Modifies the clear-on-insertion setting of a text field. |
| ❌ | .clearButtonMode(_:) |
Modifies whether and when the text field clear button appears on the view. |
| ☑️ | .textFieldStyle(_:) |
Modifies the style of the text field to one of Apple’s three pre-designed styles. |
| 🔟 | .maximumDigits(_:) |
Modifies the maximum number of digits the text field allows. |
| 🇦🇶 | .flagHidden(_:) |
Modifies whether the text field hides the country flag on the left 🇸🇪🇹🇼🇨🇬. |
| 🇸🇮 | .flagSelectable(_:) |
Modifies whether the flag is selectable. |
| ➕ | .prefixHidden(_:) |
Modifies whether the country code prefix should be hidden. Note: prefix will only be shown if using the default placeholder (placeholder = nil). |
| 📞 | .formatted(_:) |
Modifies whether the binding you pass as the text parameter gets formatted. |
| ✋ | .disabled(_:) |
Modifies whether the text field is disabled. |
| ▶️ | .onEditingBegan(perform: { code }) |
Modifies the function called when text editing begins. |
| 💬 | .onNumberChange(perform: { code }) |
Modifies the function called when the user makes any changes to the text in the text field. |
| 💬 | .onEdit(perform: { code }) |
Modifies the function called when the user makes any changes to the text in the text field. |
| 🔚 | .onEditingEnded(perform: ({ code }) |
Modifies the function called when text editing ends. |
| 🔘 | .onClear(perform: { code }) |
Modifies the function called when the user clears the text field. |
| ↪️ | .onReturn(perfom: { code }) |
Modifies the function called when the user presses return. |
| 🏳️ | .defaultRegion(_:) |
Receives a country string and selects the default phone format. |
</table class=”table table-bordered”>
</table class=”table table-bordered”>
| Features | |
|---|---|
| ☎️ | Validate, normalize and extract the elements of any phone number string. |
| 🏁 | Fast. 1000 parses -> ~0.4 seconds. |
| 📚 | Best-in-class metadata from Google’s libPhoneNumber project. |
| 🏆 | Fully tested to match the accuracy of Google’s JavaScript implementation of libPhoneNumber. |
| 📱 | Built for iOS. Automatically grabs the default region code from the phone. |
| 📝 | Editable (!) AsYouType formatter for UITextField. |
| 🇺🇸 | Convert country codes to country names and vice versa |
| ⚙️ | Access to all native UITextField configurations |
| 🔍 | Searchable and customizable country code and name list |
| ∞ | Many more features to discover |
You can use the Swift package manager to install iPhoneNumberField. Find Xcode SPM instructions here
dependencies: [
.package(url: “https://github.com/MojtabaHs/iPhoneNumberField.git”, .upToNextMinor(from: “0.10.0”))
]
This package provides you with an easy way to show tooltips over any SwiftUI view, since Apple does not provide ...
SimpleToast is a simple, lightweight, flexible and easy to use library to show toasts / popup notifications inside iOS or ...
Create Toast Views with Minimal Effort in SwiftUI Using SSToastMessage. SSToastMessage enables you to effortlessly add toast notifications, alerts, and ...