MLPAutoCompleteTextField alternatives and similar libraries
Based on the "TextField & TextView" category.
Alternatively, view MLPAutoCompleteTextField alternatives based on common mentions on social networks and blogs.
JVFloatLabeledTextFieldUITextField subclass with floating labels - inspired by Matt D. Smith's design: http://dribbble.com/shots/1254439--GIF-Mobile-Form-Interaction?list=users
TextFieldEffects9.5 0.0 L5 MLPAutoCompleteTextField VS TextFieldEffectsCustom UITextFields effects inspired by Codrops, built using Swift
PYSearch🔍 An elegant search controller which replaces the UISearchController for iOS (iPhone & iPad) .
SkyFloatingLabelTextFieldA beautiful and flexible text field control implementation of "Float Label Pattern". Written in Swift.
Reel Search8.6 0.0 L5 MLPAutoCompleteTextField VS Reel Search:octocat: 🔍 RAMReel is a UI controller that allows you to choose options from a list. Swift UI library made by @Ramotion
StatefulViewControllerPlaceholder views based on content, loading, error or empty states
NextGrowingTextView📝 The next in the generations of 'growing textviews' optimized for iOS 8 and above.
SearchTextFieldUITextField subclass with autocompletion suggestions list
RPFloatingPlaceholdersUITextField and UITextView subclasses with placeholders that change into floating labels when the fields are populated with text.
InputBarAccessoryViewA simple and easily customizable InputAccessoryView for making powerful input bars with autocomplete and attachments
GrowingTextView7.1 0.0 L5 MLPAutoCompleteTextField VS GrowingTextViewAn UITextView in Swift. Support auto growing, placeholder and length limit.
AnimatedTextInputAnimated UITextField and UITextView replacement for iOS
RSKGrowingTextViewA light-weight UITextView subclass that automatically grows and shrinks.
KMPlaceholderTextViewA UITextView subclass that adds support for multiline placeholder written in Swift.
UITextField-ShakeUITextField category that adds shake animation
InstantSearch iOS⚡️ A library of widgets and helpers to build instant-search applications on iOS.
AutocompleteFieldSubclass of UITextField that shows inline suggestions while typing.
SelectableTextViewA text view that supports selection and expansion
TweeTextFieldLightweight set of text fields with nice animation and functionality 🚀
UITextField-Navigation🏄♂️ UITextField-Navigation makes it easier to navigate between UITextFields and UITextViews
TextFieldCounterUITextField character counter with lovable UX 💖. No math skills required 🙃.
VMaskTextFieldVMaskTextField is a library which create an input mask for iOS.
IQDropDownTextFieldTextField with DropDown support using UIPickerView
DTTextFieldDTTextField is a custom textfield with floating placeholder and error label
PasswordTextFieldA custom TextField with a switchable icon which shows or hides the password and enforce good password policies
EmojiTextView4.5 0.0 L3 MLPAutoCompleteTextField VS EmojiTextViewTap to swap out words with emojis. Inspired by Messages.app on iOS 10.
HTYTextFieldA UITextField with bouncy placeholder.
ARAutocompleteTextViewARAutocompleteTextView is a subclass of UITextView that automatically displays text suggestions in real-time. This is perfect for automatically suggesting the domain as a user types an email address, #hashtag or @alexruperez.
CocoaTextFieldApple TextField created according to the Material.IO guidelines of 2019. Featured at Medium.
RSKPlaceholderTextViewA light-weight UITextView subclass that adds support for placeholder.
CHIOTPFieldCHIOTPField is a set of textfields that can be used for One-time passwords, SMS codes, PIN codes, etc. Mady by @ChiliLabs - https://chililabs.io
styled-textDeclarative text styles and streamlined Dynamic Type support for iOS
AwesomeTextFieldAwesome TextField is a nice and simple libriary for iOS and Mac OSX. It's highly customisable and easy-to-use tool. Works perfectly for any registration or login forms in your app.
CBPinEntryViewA customisable view for entering arbitrary length pins, codes or passwords in iOS. Supports iOS 12 one time codes.
ModernSearchBar3.7 0.0 L5 MLPAutoCompleteTextField VS ModernSearchBarThe famous iOS search bar with auto completion feature implemented.
Streamoji:godmode: Custom emoji rendering library for iOS apps with support for GIF & still images - plug-in extension for UITextView - performance, cache ✅ - Made with 💘 by @GetStream
MBAutoGrowingTextViewAn auto-layout base UITextView subclass which automatically grows with user input and can be constrained by maximal and minimal height
TaggingA TextView that provides easy to use tagging feature for Mention or Hashtag
SRKControlsA Custom control which turns UITextfield to item-picker & date-picker.
MVAutocompletePlaceSearchTextFieldiOS - Subclass of UITextField to achieve autocompletion for Place Search like Google Places, Uber and Much more apps having maps.
RSFloatInputViewA Float Input View with smooth animation and supporting icon and seperator written with Swift
AutoCompleteTextFieldTextField with smart suggestion
PLCurrencyTextFieldUITextField that support currency in the right way.
CurrencyTextFieldUITextField that automatically formats text to display in the currency format
TJTextFieldUITextField with underline and left image
TaniwhaTextFieldMy first cocoapod framework
NxEnabled1.1 0.0 L5 MLPAutoCompleteTextField VS NxEnabledLibrary that allows you binding `enabled` property of button with textable elements (TextView, TextField)
MeasurementTextFieldUITextField-based control for (NS)Measurement values input.
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of MLPAutoCompleteTextField or a related project?
"We believe that every tap a user makes drains a tiny bit of their energy and patience. Typing is one of the biggest expenditures of both. What we needed was a textfield that could be completed in as few keystrokes as possible even for very long words. Thus MLPAutoCompleteTextField was born."
MLPAutoCompleteTextField is a subclass of UITextField that behaves like a typical UITextField with one notable exception: it manages a drop down table of autocomplete suggestions that update as the user types. Its behavior may remind you of Google's autocomplete search feature. As of version 1.3 there is also support for showing the autocomplete table as an accessory view of the keyboard.
From version 1.5 and above MLPAutoCompleteTextField is compatible with iOS 5.0 or greater.
A user is required to enter a long and complicated chemical name into a textfield. With an autocomplete textfield, chemical names that closely match her entered string can be displayed as she types, and if she sees the chemical name she was thinking of she can select it and have it entered into the textfield automatically. This reduces the amount of typing she has to do and helps prevent errors. All this can occur within a single view and without the need for a search tableview controller.
The goal for MLPAutoCompleteTextField is to create an autocomplete textfield that is quick and easy to use, yet eminently customizable. To get a working MLPAutoCompleteTextField instance, ensure you have done the following:
Add the MLPAutoCompleteTextField, NSString+Levenshtein, MLPAutoCompletionObject.h, MLPAutoCompleteDataSource and MLPAutoCompleteTextFieldDelegate files into your project (should have seven files in total).
Have an MLPAutoCompleteTextField instance allocated and initialized within some view.
Set the textfield's "autoCompleteDataSource" property to a valid object that implements the required methods of the MLPAutoCompleteTextFieldDataSource protocol. Note that the method "autoCompleteTextField:possibleCompletionsForString:" is the method you use to return possible completions for the textfield's currently entered string. This method is expected to return either an array of NSString, or an array of objects conforming to the MLPAutoCompletionObject protocol, or a mix of both. This method is also called asynchronously.
(Optional) Set the textfield's "autoCompleteDelegate" property to a valid object that implements the methods of the MLPAutoCompleteTextFieldDelegate protocol for further customization options.
You should now have a working MLPAutoCompleteTextField at this point.
Autocomplete as a Keyboard Input Accessory
As of version 1.3 of MLPAutoCompleteTextField, the autocomplete suggestions can be shown as a tableview that appears above the keyboard. To activate this feature, set the
autoCompleteTableAppearsAsKeyboardAccessory property of the MLPAutoCompleteTextField instance to
<!--- Remove when carthage support is in.
Carthage is the simplest way to include frameworks in your Cocoa applications.
Learn more at https://github.com/Carthage/Carthage
To use the latest version of this library, add this to your Cartfile.
# Use the latest version github "EddyBorja/MLPAutoCompleteTextField"
Traditionally, you might have seen something similar to the MLPAutoCompleteTextField implemented with something like a "search tableview controller". This approach has some limitations and boilerplate code which MLPAutoCompleteTextField has strived to overcome. An MLPAutoCompleteTextField is not meant to be a replacement for a search function, it is designed purely for quick string completion purposes.
The MLPAutoCompleteTextField sorting of autocomplete strings is powered by the NSString+Levenshtein category extension written by Mark Aufflick (based loosely on a Levenshtein algorithm written by Rick Bourner). This algorithm basically calculates the edit distance between two strings (the number of changes required to turn one string into the other).
When a datasource passes an array of strings to an MLPAutoCompleteTextField, the textfield sorts the strings according to edit distance and displays this list of autocomplete suggestions.
Used responsibly, we hope the MLPAutoCompleteTextField will open up new design possibilities for developers of all origins and skill levels.
MLPAutoCompleteTextField uses a multi-threaded approach to it's sorting of autocomplete strings so that the main thread is never blocked and the UI stays 100% responsive.
Keep in mind that although you can pass an ungodly amount of strings in an array to the MLPAutoCompleteTextField at once, sorting performance will suffer directly related to the number of strings you give (we're talking on the magnitude of thousands of strings). If performance is suffering, you should find ways to reduce the amount of strings you pass to the MLPAutoCompleteTextField when it asks you for them. (For example, if you assume a user will always know the first letter of a word correctly, you may choose to only send an array of words that start with that letter or even close to that letter on the keyboard, rather than every single possible word you have).
- Clear Color or Translucent textfields are a bit ugly at the moment.
- Hide your autocomplete tableview (if its open) before rotating the view it's in, and then unhide after the rotation is done.
What to Expect in Future Updates
iOS 7 Styling: This class will be updated to match the design language of iOS 7 in iOS 7 apps.
Horizontal Scrolling Suggestions: There will be an option to display autocomplete terms in a slim, horizontally scrollable list above the keyboard, like the autocomplete on many Android devices.
Weighted Suggestions: In some cases, there may exist multiple autocomplete strings that are all equally possible completions for the current entered incomplete string. In current versions, the user will simply have to keep typing a few more characters to further narrow down the autocomplete suggestions to float the most probable string to the top of the autocomplete list.
However, in the future you can expect to see a sort of "weighting" or "ranking" system, which will allow you to favor some strings over others by assigning a number to them. Strings with higher weight will appear closer to the top of the list of autocomplete suggestions. So even though a group of strings are all equally possible completions for a given incomplete string, the ones with higher weight are deemed as being the "more probable" matches and will be sorted accordingly.
This should further reduce the number of characters a user has to type.
String Hiding: If an autocomplete suggestion is of such poor quality that it has nothing in common at all with the user's currently entered string, then there may be a built in option to not display this suggestion at all.
Tokenized Bolding: If a user has entered a string such as "Grate White Sha", and there is an autocomplete suggestion called "Great White Shark", then in the suggestion the word "Great" should be in bold, the word "White" should be regular, and the work "Shark" should have the "rk" bolded. This behaves more like Google's autocomplete. (A user can choose the reverse behavior too).
Background Dimming: When an autocomplete tableview menu is open, there should be an option to have the superview background dim a bit to keep the focus on the textfield and autocomplete suggestions.
MLPAutoCompleteTextField uses the MIT License:
Copyright (c) 2013, Mainloop LLC
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The NSString+Levenshtein category uses this license as stated in the .h and .m files:
Copyright (c) 2009, Mark Aufflick All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of the Mark Aufflick nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY MARK AUFFLICK ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MARK AUFFLICK BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MLPAutoCompleteTextField was written by Eddy Borja, at Mainloop LLC.
NSString+Levenshtein category extension was written by Mark Aufflick.
If you make use of MLPAutoCompleteTextField, tell us about it! Feel free to leave comments, likes, hatemail, etc at [email protected]
These days I'm unable to continue working on this project due to other obligations, but I'm always open to pull requests.
Be sure to check out these other libraries:
MLPSpotlight UIColor+MLPFlatColors MLPAccessoryBadge EBPhotoPages Gallery
*Note that all licence references and agreements mentioned in the MLPAutoCompleteTextField README section above are relevant to that project's source code only.