Easy to use and highly configurable autocomplete view that is attachable to any UITextField
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:
$ sudo gem install cocoapodsCocoaPods 1.13.0+ is required.
To integrate LUAutocompleteView into your Xcode project using CocoaPods, specify it in your Podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '13.0'
use_frameworks!
target '<Your Target Name>' do
pod 'LUAutocompleteView'
endThen, run the following command:
$ pod installTo integrate using Apple's Swift Package Manager, add the following as a dependency to your Package.swift:
.package(url: "https://github.com/LaurentiuUngur/LUAutocompleteView", from: Version(5, 0, 0))If you prefer not to use either of the before mentioned dependency managers, you can integrate LUAutocompleteView into your project manually.
- Import
LUAutocompleteViewinto your project.
import LUAutocompleteView- Add autocomplete view as subview
view.addSubview(autocompleteView)- Assign to
textFieldproperty the text field to which the autocomplete view you want be attached.
autocompleteView.textField = textField- Set as data source and delegate.
autocompleteView.dataSource = self
autocompleteView.delegate = self- Implement
LUAutocompleteViewDataSourceandLUAutocompleteViewDelegateprotocols.
// MARK: - LUAutocompleteViewDataSource
extension ViewController: LUAutocompleteViewDataSource {
func autocompleteView(_ autocompleteView: LUAutocompleteView, elementsFor text: String, completion: @escaping ([String]) -> Void) {
let elementsThatMatchInput = elements.filter { $0.lowercased().contains(text.lowercased()) }
completion(elementsThatMatchInput)
}
}
// MARK: - LUAutocompleteViewDelegate
extension ViewController: LUAutocompleteViewDelegate {
func autocompleteView(_ autocompleteView: LUAutocompleteView, didSelect text: String) {
print(text + " was selected from autocomplete view")
}
}- Create your custom autocomplete cell by subclassing
LUAutocompleteTableViewCell. - Override
func set(text: String)fromLUAutocompleteTableViewCellthat is called every time when given text should be displayed by the cell.
import UIKit
import LUAutocompleteView
final class CustomAutocompleteTableViewCell: LUAutocompleteTableViewCell {
// MARK: - Base Class Overrides
override func set(text: String) {
textLabel?.text = text
textLabel?.textColor = .red
}
}- Assign to
autocompleteCellproperty your custom autocomplete cell.
autocompleteView.autocompleteCell = CustomAutocompleteTableViewCell.self- Xcode 15.0+
- Swift 5.9+
- iOS 13.0+
- LUAutocompleteView is available under the MIT license.