- August 1, 2025
- Mins Read
You can use CocoaPods to install AutoCompleteTextField
by adding it to your Podfile
:
pod “AutoCompleteTextField”
Create a Cartfile
that lists the framework and run carthage bootstrap
. Follow the instructions to add $(SRCROOT)/Carthage/Build/iOS/AutoCompleteTextField.framework
to an iOS project.
github “nferocious76/AutoCompleteTextField”
/Pod/Classes
folder in your project.
// Initializing `AutoCompleteTextField`
let myTextField = AutoCompleteTextField(frame: CGRect(x: 20, y: 64, width: view.frame.width – 40, height: 40), dataSource: `YourDataSource`, delegate: `YourDelegate`)
// Setting `dataSource`, it can be set from the XCode IB like `TextFieldDelegate` in which will appear as `actfDataSource`
myTextField.dataSource = `YourDataSource`
// Setting delimiter (optional). If set, it will only look for suggestion after the delimiter
myTextField.setDelimiter(“@”)
// Show `AutoCompleteButton`
myTextField.showAutoCompleteButtonWithImage(UIImage(named: “checked”), viewMode: .whileEditing)
// Providing data source to get the suggestion from inputs
func autoCompleteTextFieldDataSource(_ autoCompleteTextField: AutoCompleteTextField) -> [ACTFWeightedDomain] {
return weightedDomains // AutoCompleteTextField.domainNames // [ACTFDomain(text: “gmail.com”, weight: 0), ACTFDomain(text: “hotmail.com”, weight: 0), ACTFDomain(text: “domain.net”, weight: 0)]
}
// optional delegate for checking what was suggested
func autoCompleteTextField(_ autoCompleteTextField: AutoCompleteTextField, didSuggestDomain domain: ACTFDomain) {
print(“Suggested domain: \(domain.text) – weight: \(domain.weight)”)
}
ACTFDomain
is class type that conforms to the Codable
. User can store and retrieve smart domains.
One example may be ‘gmail.com’ and ‘georgetown.edu’. Users are more likely to have a ‘gmail.com’ account so we would want that to show up before ‘georgetown.edu’, even though that is out of alphabetical order.
ACTFDomain
is sorted based on its usage with auto storing flag that is default to true.
This is just one example. Manually providing a suggestion gives more flexibility and does not force the usage of an array of strings.
// Usage
let g1 = ACTFDomain(text: “gmail.com”, weight: 10)
let g2 = ACTFDomain(text: “googlemail.com”, weight: 5)
let g3 = ACTFDomain(text: “google.com”, weight: 4)
let g4 = ACTFDomain(text: “georgetown.edu”, weight: 1)
let weightedDomains = [g1, g2, g3, g4] // [ACTFDomain]
// Storing
// store single
if g1.store() {
print(“Store success”)
}
// store multiple
let errors = ACTFDomain.store(domains: weightedDomains)
if errors.count > 0 {
print(“Store domain errors: “, errors)
}
// Retrieving
// retrieved single
if let domain = ACTFDomain.domain(for: “gmail.com”) {
print(“Retrieved single: “, domain.text, domain.weight)
}
// retrieved multiple
let keys = [“gmail.com”, “googlemail.com”, “google.com”, “georgetown.edu”]
let retriedDomains = ACTFDomain.domain(for: keys)
print(“Retrieved domains: “, retriedDomains.map ({ “Domain: \($0.text) – weight: \($0.weight)” }))
A Figma component preview for your SwiftUI views. You can use Figma components instead of real views within your app ...
Motivation At WWDC 2019, Apple announced SwiftUI a new library for building UI in a simple and fast way. Xcode’s ...
Make use of SwiftUI previews for rapidly prototyping your UIViewControllers and UIViews! The SwiftUI preview canvas is tied to a specific version of ...
Requirements Dev environment: Xcode 13+, macOS 12+ iOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+ Usage
Horizontal wheel picker for SwiftUI Requirements iOS 13.0+ Installation CocoaPods