UITextfield subclass with autocomplete menu. For iOS.

Overview

MLPAutoCompleteTextField

"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."

Alt text|Alt text

About

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.

####Example:

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.

Usage

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:

  1. Add the MLPAutoCompleteTextField, NSString+Levenshtein, MLPAutoCompletionObject.h, MLPAutoCompleteDataSource and MLPAutoCompleteTextFieldDelegate files into your project (should have seven files in total).

  2. Have an MLPAutoCompleteTextField instance allocated and initialized within some view.

  3. 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.

  4. (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 TRUE.

Notes

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.

:D

Performance

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).

Known Issues

  • 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.

License

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:

NSString+Levenshtein

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.

Credits

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.

More Stuff

Be sure to check out these other libraries:

MLPSpotlight
UIColor+MLPFlatColors
MLPAccessoryBadge
EBPhotoPages Gallery

Comments
  • Not working on my app.

    Not working on my app.

    I'm studying iOS programming and I am implementing MLPAutoCompleteTextField to my simple app. I followed instructions and also referred to the sample project. But when I build & run my project, it is successfully compiled but the suggestions are not displayed. Here's how it looks:http://d.pr/i/Uv3D

    AddQuoteViewController.h

    #import <UIKit/UIKit.h>
    #import "MLPAutoCompleteTextFieldDataSource.h"
    #import "MLPAutoCompleteTextFieldDelegate.h"
    
    @class MLPAutoCompleteTextField;
    @interface AddQuoteViewController : UIViewController <UITextFieldDelegate, MLPAutoCompleteTextFieldDataSource, MLPAutoCompleteTextFieldDelegate>
    
    @property (strong, nonatomic) IBOutlet MLPAutoCompleteTextField *authorTextField;
    - (IBAction)saveQuoteButton:(id)sender;
    @end
    

    AddQuoteViewController.m

    #import "AddQuoteViewController.h"
    #import "MLPAutoCompleteTextField.h"
    #import "AuthorAutoSuggestTableViewCell.h"
    #import <QuartzCore/QuartzCore.h>
    
    @implementation AddQuoteViewController
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShowWithNotification:) name:UIKeyboardDidShowNotification object:nil];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHideWithNotification:) name:UIKeyboardDidHideNotification object:nil];
    
        [self.authorTextField setBorderStyle:UITextBorderStyleRoundedRect];
    }
    
    - (void)keyboardDidShowWithNotification:(NSNotification *)aNotification {
        [self.author setAlpha:0];
    }
    
    - (void)keyboardDidHideWithNotification:(NSNotification *)aNotification {
        [self.author setAlpha:1];
        [self.authorTextField setAutoCompleteTableViewHidden:NO];
    }
    
    - (NSArray *)possibleAutoCompleteSuggestionsForString:(NSString *)string {
        NSArray *sample = @[@"Ape", @"Bird", @"Cat", @"Dog"];
        return sample;
    }
    
    - (BOOL)autoCompleteTextField:(MLPAutoCompleteTextField *)textField
              shouldConfigureCell:(UITableViewCell *)cell
           withAutoCompleteString:(NSString *)autocompleteString
             withAttributedString:(NSAttributedString *)boldedString
                forRowAtIndexPath:(NSIndexPath *)indexPath;
    {
        return YES;
    }
    
    
    opened by kennethjohnbalgos 17
  • AutoCompleteTableView positioning

    AutoCompleteTableView positioning

    Hi, I'm trying to move down the autocomplete table view, since it appears in the middle of the AutoCompleteTextfield and covers half of the text. Is there any property or method to achieve this ? I tried with autoCompleteTableOriginOffset/setAutoCompleteTableOriginOffset (in both viewWillAppear and viewDidLoad), but nothing moves or changes.

    I'm using XCode Version 5.1.1 (5B1008), iOS 7.1.1 with storyboard.

    Thanks

    opened by gioy 15
  • Cannot connect the autoCompleteDataSource to the IBOutlet

    Cannot connect the autoCompleteDataSource to the IBOutlet

    I am fairly new to IOS, and am sure I am missing something. I am unable to connect the autoCompleteDataSource to my IBOutlet in my view, but I can manually connect it by calling setAutoCompleteDataSource. Relevant code is below.

    GBProductAutocomplete.h

    #import <Foundation/Foundation.h>
    #import "MLPAutoCompleteTextFieldDataSource.h"
    
    @interface GBProductAutocomplete : NSObject <MLPAutoCompleteTextFieldDataSource>
    
    @end
    

    GBProductAutocomplete.m

    #import "GBProductAutocomplete.h"
    
    @implementation GBProductAutocomplete
    
    - (void)autoCompleteTextField:(MLPAutoCompleteTextField *)textField
     possibleCompletionsForString:(NSString *)string
                completionHandler:(void (^)(NSArray *))handler
    {
        dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
        dispatch_async(queue, ^{
            NSArray *completions;
            completions = [NSArray arrayWithObjects:@"hello", @"world", nil];
    
            handler(completions);
        });
    }
    
    @end
    

    GBViewController.h

    #import <UIKit/UIKit.h>
    #import "MLPAutoCompleteTextFieldDelegate.h"
    
    @class GBProductAutocomplete;
    @interface GBManualAddViewController : UIViewController <UITextFieldDelegate, MLPAutoCompleteTextFieldDelegate>
    
    @property (weak, nonatomic) IBOutlet MLPAutoCompleteTextField *autocompleteTextField;
    @property (strong, nonatomic) IBOutlet GBProductAutocomplete *autocompleteDataSource;
    @property (weak, nonatomic) IBOutlet MLPAutoCompleteTextField *textField;
    
    @end
    

    GBViewController.m

    #import "GBManualAddViewController.h"
    #import "MLPAutoCompleteTextField.h"
    #import "GBProductAutocomplete.h"
    
    @interface GBManualAddViewController ()
    
    @end
    
    @implementation GBManualAddViewController
    
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view from its nib.
    //    [self.textField setAutoCompleteDataSource:[[GBProductAutocomplete alloc] init]];
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    - (BOOL)autoCompleteTextField:(MLPAutoCompleteTextField *)textField
              shouldConfigureCell:(UITableViewCell *)cell
           withAutoCompleteString:(NSString *)autocompleteString
             withAttributedString:(NSAttributedString *)boldedString
            forAutoCompleteObject:(id<MLPAutoCompletionObject>)autocompleteObject
                forRowAtIndexPath:(NSIndexPath *)indexPath;
    {
        //This is your chance to customize an autocomplete tableview cell before it appears in the autocomplete tableview
        NSString *filename = [autocompleteString stringByAppendingString:@".png"];
        filename = [filename stringByReplacingOccurrencesOfString:@" " withString:@"-"];
        filename = [filename stringByReplacingOccurrencesOfString:@"&" withString:@"and"];
        [cell.imageView setImage:[UIImage imageNamed:filename]];
    
        return YES;
    }
    
    - (void)autoCompleteTextField:(MLPAutoCompleteTextField *)textField
      didSelectAutoCompleteString:(NSString *)selectedString
           withAutoCompleteObject:(id<MLPAutoCompletionObject>)selectedObject
                forRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if(selectedObject){
            NSLog(@"selected object from autocomplete menu %@ with string %@", selectedObject, [selectedObject autocompleteString]);
        } else {
            NSLog(@"selected string '%@' from autocomplete menu", selectedString);
        }
    }
    
    @end
    

    If I uncomment the line [self.textField setAutoCompleteDataSource:[[GBProductAutocomplete alloc] init]]; in viewDidLoad the autocomplete will work, but I cannot figure out why I cannot drag from the outlet in the nib to connect the property.

    opened by trobrock 15
  • Suggestions z-index problem when in static UITableView cell

    Suggestions z-index problem when in static UITableView cell

    For the app I'm working on, there is a form with some textfields. The autocomplete works without a problem inside a regular view in a view controller, but there are some z-index issues when the autocomplete textfield is inside a static cell of a UITableView.

    It's hard to show with screenshots, but you can see the form below with the autocomplete suggestions showing up. When you try and click on one it dismisses the dialog and selects the MRN field below the suggestions.

    ios simulator screen shot 2013-05-30 1 04 29 pm

    bug 
    opened by MarcMeszaros 15
  • can't click on suggestion

    can't click on suggestion

    I implement simple datasource for autocomplete list and show suggestions, but when i try to select one of the suggestion it do nothing.

    I also try to implement some delegate methods like:

    - (void)autoCompleteTextField:(MLPAutoCompleteTextField *)textField
      didSelectAutoCompleteString:(NSString *)selectedString
           withAutoCompleteObject:(id<MLPAutoCompletionObject>)selectedObject
                forRowAtIndexPath:(NSIndexPath *)indexPath
    {
        NSLog(@"select: %@", selectedString);
    }
    

    Nothing happens.

    http://s1.ipicture.ru/uploads/20131008/At8TrUtS.png

    duplicate 
    opened by wiistriker 10
  • iOS 8 (simulator): autoCompleteTableView doesn't appear

    iOS 8 (simulator): autoCompleteTableView doesn't appear

    Trying to switch from iOS 7.1 to iOS 8, I noticed that the autoCompleteTableView doesn't appear anymore. I double checked that data is fetched correctly, so it should be something related to the tableview's visibility. Instead of the tableview, only a bottom shadow appears.

    Before typing screen shot 2014-09-20 at 16 24 18

    After typing screen shot 2014-09-20 at 16 24 44

    I'm on OSX 10.9.5 (Mavericks), using XCode 6.0.1 (6A317) My app is written with Objective-C, no swift at all.

    opened by gioy 8
  • Fixed dropdown when textfield is placed in a UITableView

    Fixed dropdown when textfield is placed in a UITableView

    The dropdown will be attached to the rootview instead of the superview. That way dropdown items can be selected even when placed in a UITableView. Positioning in a UITableView has also been fixed.

    opened by mikumi 8
  • Allow async fetching of auto complete suggestions list

    Allow async fetching of auto complete suggestions list

    Modified data source method to use blocks, this should allow async fetching of suggestions list which is more suitable when list is available from a web service

    opened by mosamer 8
  • Crash when typing too fast

    Crash when typing too fast

    I'm testing on an iPad 1 running iOS 5.1. There is a concurrency problem where a crash occurs in MLPAutoCompleteFetchOperation because sentinelSemaphore is signalled in -[MLPAutoCompleteFetchOperation cancel] while it is nil because it has never been created.

    If a MLPAutoCompleteTextFieldDelegate doesn't implement autoCompleteTextField:possibleCompletionsForString:completionHandler: then the semaphore will never be created in -[MLPAutoCompleteFetchOperation main]. Therefore if the user is typing fast enough that fetchAutoCompleteSuggestions gets called a second time while there is an operation on the queue, it will get cancelled which will call the operation's cancel method which attempts to signal the semaphore which was never created.

    I suggest putting a guard to make sure the semaphore isn't nil in the -[MLPAutoCompleteFetchOperation cancel] method like so:

    - (void) cancel
    {
        if (sentinelSemaphore) dispatch_semaphore_signal(sentinelSemaphore);
        [super cancel];
    }
    
    opened by logachu 7
  • autoCompleteTableView shadow is not effected ?

    autoCompleteTableView shadow is not effected ?

    hi Eddy, i've applied these lines of code : self.autoCompleteTableView.layer.masksToBounds=NO; self.autoCompleteTableView.layer.shadowOffset=CGSizeMake(1,1); self.autoCompleteTableView.layer.shadowRadius=5.0f; self.autoCompleteTableView.layer.shadowOpacity=1; self.autoCompleteTableView.layer.shadowColor=[UIColor orangeColor].CGColor;

    in the method -setNoneStyleForAutoCompleteTableView but,i couldn't see them on the tableview.

    opened by Meseery 7
  • Can't find asciiLevenshteinDistanceWithString

    Can't find asciiLevenshteinDistanceWithString

    I use cocoapod and added all your files per instruction. Yet when I run the app I get Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString asciiLevenshteinDistanceWithString:]: unrecognized selector sent to instance 0x9d5bb40'

    Any idea?

    opened by bluekite2000 5
  • add attachmentView to float

    add attachmentView to float

    Set the attachmentView property is the containerview(sample:superview, superview[.superview...].superview, UIScorllView, UITableView, UICollectionView, etc.). The pop menu should be show at front and fix MLPAutoCompleteTextField at UITableViewCell bug.

    这个合并请求是添加一个attachmentView属性,只要设置attachmentView为MLPAutoCompleteTextField容器view(可以是textfield的superview或者UIScrollView,UITableView,UICollectionView等),就可以修复在UITableViewCell使用MLPAutoCompleteTextField的bug。

    opened by irrcombat 0
  • didSelectAutoComplete requires long press

    didSelectAutoComplete requires long press

    I've found that the didSelectAutoComplete method requires a several sec press in to trigger. Is there any Delegate methods to adjust the length of the press? Or is this adjusted somewhere else?

    opened by kevintbradbury 0
  • Suggestions Drop-down shows behind

    Suggestions Drop-down shows behind

    simulator screen shot - iphone 7 - 2017-10-18 at 12 01 31

    As you can see the suggestions drop-down is showing behind message view (shown by the red arrow). Can you fix it so that the drop-down, always shows at the top?

    The MLPAutoCompleteTextField and the message UITextView, both are inside a StackView.

    opened by burhanuddin353 1
  • swift2.x -> swift3.x autocomplete suggestions crashes in Swift3.x

    swift2.x -> swift3.x autocomplete suggestions crashes in Swift3.x

    Dear Eddy Borja

    Asynchronous managing of a drop down table of autocomplete suggestions crashes in Swift3.x

    NSAssert(0, @"An autocomplete datasource must implement either autoCompleteTextField:possibleCompletionsForString: or autoCompleteTextField:possibleCompletionsForString:completionHandler:"); But same works perfectly in Swift 2.x. Probably Apple change logics again. Please check.

    It has been more than 2 years after update of your github repository.

    Could you please address this issue.

    Waiting so much, thank you

    opened by Nihonda 2
Owner
Eddy Borja
The sky above the port was the color of television, tuned to a dead channel.
Eddy Borja
An UITextField subclass to simplify country code's picking. Swift 5.0

Preview Installation NKVPhonePicker is available through CocoaPods. To install it, simply add the following line to your Podfile: pod 'NKVPhonePicker'

Nike Kov 140 Nov 23, 2022
Animated Subclass of UITextField created with CABasicAnimation and CAShapeLayer

JDAnimatedTextField JDAnimatedTextField is animateable UITextField that can significantly enhance your user's experiences and set your app apart from

Jawad Ali 25 Dec 13, 2022
UITextField subclass with floating labels

JVFloatLabeledTextField JVFloatLabeledTextField is the first implementation of a UX pattern that has come to be known the "Float Label Pattern". Due t

Jared Verdi 7.2k Jan 2, 2023
Subclass of UITextField that shows inline suggestions while typing.

AutocompleteField Subclass of UITextField that shows inline suggestions while typing. Plug and play replacement for UITextField. Delimiter support. Pe

Filip Stefansson 663 Dec 6, 2022
UITextField subclass with autocompletion suggestions list

SearchTextField Overview SearchTextField is a subclass of UITextField, written in Swift that makes really easy the ability to show an autocomplete sug

Alejandro Pasccon 1.1k Dec 28, 2022
Autocomplete for a text field in SwiftUI using async/await

Autocomplete for a text field in SwiftUI using async/await

Dmytro Anokhin 13 Oct 21, 2022
A simple and easily customizable InputAccessoryView for making powerful input bars with autocomplete and attachments

InputBarAccessoryView Features Autocomplete text with @mention, #hashtag or any other prefix A self-sizing UITextView with an optional fixed height (c

Nathan Tannar 968 Jan 2, 2023
Animated UITextField and UITextView replacement for iOS

AnimatedTextInput iOS custom text input component used in the Jobandtalent app. Installation Use cocoapods to install this custom control in your proj

jobandtalent 757 Dec 15, 2022
HTYTextField A UITextField with bouncy placeholder.

HTYTextField - A UITextField with bouncy placeholder. Screenshot Installation CocoaPods Add the dependency to your Podfile

Hanton Yang 312 Nov 13, 2022
Fully-wrapped UITextField made to work entirely in SwiftUI

iTextField ⌨️ A fully-wrapped `UITextField` that works entirely in SwiftUI. ?? Get Started | Examples | Customize | Install | Get Started Install iTex

Benjamin Sage 89 Jan 2, 2023
UITextField character counter with lovable UX 💖. No math skills required 🙃.

TextFieldCounter UITextField character counter with lovable UX ??. No math skills required ??. Features Set max length of UITextField. A beautiful an

Fabricio Serralvo 434 Dec 22, 2022
🏄‍♂️ UITextField-Navigation makes it easier to navigate between UITextFields and UITextViews

' __________________ _______ _________ _______ _________ _______ _ ______ ' |\ /|\__ __/\__ __/( ____ \|\ /

Thanh Pham 446 Nov 24, 2022
Animated UITextField enhance UX for the user by giving clarity that they are focused

JDCircularProgress JDTextField is animateable UITextField that can significantly enhance your user's experiences and set your app apart from the rest

Jawad Ali 22 Nov 17, 2022
This project will add a done button on your UITextField and UITextView

This project will add a done button on your UITextField and UITextView

Botla Venkatesh 0 Nov 23, 2021
UITextField category that adds shake animation

UITextField category that adds a shake animation like the password field of the OsX login screen. Screenshot Setup with CocoaPods pod 'UITextField+Sha

Andrea Mazzini 749 Dec 13, 2022
UITextField extension in Swift that adds shake animation

UITextField-Shake-Swift UITextField extension in Swift that adds shake animation Initially created by Andrea Mazzini (using Objective-C) on 08/02/14:

null 15 Jul 20, 2021
UITextField with underline and left image

TJTextField UITextField with underline and left image Version: 1.0 Features Add image in UITextField Left text pedding Underline whole UITextField Sho

Tejas Ardeshna 44 May 16, 2022
UITextField and UITextView subclasses with placeholders that change into floating labels when the fields are populated with text.

Deprecated Please use JVFloatLabeledTextField instead or feel free to chime in on an issue if you'd like to take over the repo. RPFloatingPlaceholders

rob phillips 1.1k Jan 5, 2023
UITextField that automatically formats text to display in the currency format

CurrencyTextField The numbers that the user enters in the field are automatically formatted to display in the dollar amount format. For example, if th

Richa Deshmukh 49 Sep 28, 2022