iOS Textfield Autocomplete
This is a iOS auto complete for iOS UITextField written all in Swift.
Installation
You can install it using CocoaPods
pod 'CCAutocomplete'
Usage
AutocompleteDelegate
The ViewController containing the UITextField should conform to AutocompleteDelegate protocol.
The protocol contains following methods:
Required methods
func autoCompleteTextField() -> UITextField: Returns UITextField we want to apply autocomplete for
func autoCompleteThreshold(textField: UITextField) -> Int: Returns minimum number of characters to start showing autocomplete
func autoCompleteItemsForSearchTerm(term: String) -> [AutocompletableOption]: Returns array of objects that conform to AutocompletableOption to be shown in the list of autocomplete
func autoCompleteHeight() -> CGFloat: Maximum height which shows autocomplete items
func didSelectItem(item: AutocompletableOption) -> Void: Is getting called when we tapped on the autocomplete item
Optional methods:
func nibForAutoCompleteCell() -> UINib: Create a nib file containing custom UITableViewCell and return it from this method to customize autocomplete cell
func heightForCells() -> CGFloat: height of custom autocomplete cells
func getCellDataAssigner() -> ((UITableViewCell, AutocompletableOption) -> Void): returns a method that instruct Autocomplete how to assign an object that conforms to AutocompletableOption to a subclass of a UITableViewCell
func animationForInsertion() -> UITableView.RowAnimation: returns animation that is used when inserting new items into Autocomplete
func animationForDeletion() -> UITableView.RowAnimation: returns animation that is used when removing existing items from Autocomplete
AutocompletableOption
A protocol that uses for datasource of Autocomplete UITableViewCells.
If you want to customize autocomplete cell to have more data items, you need to create an object that conforms to this.
TODOs
There is a plan to add support multiple sections for Autocomplete.