123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652 |
- //
- // IQUIView+IQKeyboardToolbar.m
- // https://github.com/hackiftekhar/IQKeyboardManager
- // Copyright (c) 2013-16 Iftekhar Qurashi.
- //
- // 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.
- #import "IQUIView+IQKeyboardToolbar.h"
- #import "IQKeyboardManagerConstantsInternal.h"
- #import "IQKeyboardManager.h"
- #import <objc/runtime.h>
- #import <UIKit/UIImage.h>
- #import <UIKit/UILabel.h>
- #import <UIKit/UIAccessibility.h>
- @implementation IQBarButtonItemConfiguration
- -(instancetype)initWithBarButtonSystemItem:(UIBarButtonSystemItem)barButtonSystemItem action:(SEL)action
- {
- self = [super init];
- if (self) {
- _barButtonSystemItem = barButtonSystemItem;
- _action = action;
- }
- return self;
- }
- -(instancetype)initWithImage:(UIImage *)image action:(SEL)action
- {
- self = [super init];
- if (self) {
- _image = image;
- _action = action;
- }
- return self;
- }
- -(instancetype)initWithTitle:(NSString *)title action:(SEL)action
- {
- self = [super init];
- if (self) {
- _title = title;
- _action = action;
- }
- return self;
- }
- @end
- @implementation UIImage (IQKeyboardToolbarNextPreviousImage)
- +(UIImage*)keyboardPreviousiOS9Image
- {
- static UIImage *keyboardPreviousiOS9Image = nil;
-
- if (keyboardPreviousiOS9Image == nil)
- {
- // Get the top level "bundle" which may actually be the framework
- NSBundle *mainBundle = [NSBundle bundleForClass:[IQKeyboardManager class]];
-
- // Check to see if the resource bundle exists inside the top level bundle
- NSBundle *resourcesBundle = [NSBundle bundleWithPath:[mainBundle pathForResource:@"IQKeyboardManager" ofType:@"bundle"]];
-
- if (resourcesBundle == nil) {
- resourcesBundle = mainBundle;
- }
-
- keyboardPreviousiOS9Image = [UIImage imageNamed:@"IQButtonBarArrowLeft" inBundle:resourcesBundle compatibleWithTraitCollection:nil];;
-
- //Support for RTL languages like Arabic, Persia etc... (Bug ID: #448)
- #ifdef __IPHONE_11_0
- if (@available(iOS 9.0, *)) {
- #endif
- if ([UIImage instancesRespondToSelector:@selector(imageFlippedForRightToLeftLayoutDirection)])
- {
- keyboardPreviousiOS9Image = [keyboardPreviousiOS9Image imageFlippedForRightToLeftLayoutDirection];
- }
- #ifdef __IPHONE_11_0
- }
- #endif
- }
-
- return keyboardPreviousiOS9Image;
- }
- +(UIImage*)keyboardNextiOS9Image
- {
- static UIImage *keyboardNextiOS9Image = nil;
-
- if (keyboardNextiOS9Image == nil)
- {
- // Get the top level "bundle" which may actually be the framework
- NSBundle *mainBundle = [NSBundle bundleForClass:[IQKeyboardManager class]];
-
- // Check to see if the resource bundle exists inside the top level bundle
- NSBundle *resourcesBundle = [NSBundle bundleWithPath:[mainBundle pathForResource:@"IQKeyboardManager" ofType:@"bundle"]];
-
- if (resourcesBundle == nil) {
- resourcesBundle = mainBundle;
- }
-
- keyboardNextiOS9Image = [UIImage imageNamed:@"IQButtonBarArrowRight" inBundle:resourcesBundle compatibleWithTraitCollection:nil];
-
- //Support for RTL languages like Arabic, Persia etc... (Bug ID: #448)
- #ifdef __IPHONE_11_0
- if (@available(iOS 9.0, *)) {
- #endif
- if ([UIImage instancesRespondToSelector:@selector(imageFlippedForRightToLeftLayoutDirection)])
- {
- keyboardNextiOS9Image = [keyboardNextiOS9Image imageFlippedForRightToLeftLayoutDirection];
- }
- #ifdef __IPHONE_11_0
- }
- #endif
- }
-
- return keyboardNextiOS9Image;
- }
- +(UIImage*)keyboardPreviousiOS10Image
- {
- static UIImage *keyboardPreviousiOS10Image = nil;
-
- if (keyboardPreviousiOS10Image == nil)
- {
- // Get the top level "bundle" which may actually be the framework
- NSBundle *mainBundle = [NSBundle bundleForClass:[IQKeyboardManager class]];
-
- // Check to see if the resource bundle exists inside the top level bundle
- NSBundle *resourcesBundle = [NSBundle bundleWithPath:[mainBundle pathForResource:@"IQKeyboardManager" ofType:@"bundle"]];
-
- if (resourcesBundle == nil) {
- resourcesBundle = mainBundle;
- }
-
- keyboardPreviousiOS10Image = [UIImage imageNamed:@"IQButtonBarArrowUp" inBundle:resourcesBundle compatibleWithTraitCollection:nil];
-
- //Support for RTL languages like Arabic, Persia etc... (Bug ID: #448)
- #ifdef __IPHONE_11_0
- if (@available(iOS 9.0, *)) {
- #endif
- if ([UIImage instancesRespondToSelector:@selector(imageFlippedForRightToLeftLayoutDirection)])
- {
- keyboardPreviousiOS10Image = [keyboardPreviousiOS10Image imageFlippedForRightToLeftLayoutDirection];
- }
- #ifdef __IPHONE_11_0
- }
- #endif
- }
-
- return keyboardPreviousiOS10Image;
- }
- +(UIImage*)keyboardNextiOS10Image
- {
- static UIImage *keyboardNextiOS10Image = nil;
-
- if (keyboardNextiOS10Image == nil)
- {
- // Get the top level "bundle" which may actually be the framework
- NSBundle *mainBundle = [NSBundle bundleForClass:[IQKeyboardManager class]];
-
- // Check to see if the resource bundle exists inside the top level bundle
- NSBundle *resourcesBundle = [NSBundle bundleWithPath:[mainBundle pathForResource:@"IQKeyboardManager" ofType:@"bundle"]];
-
- if (resourcesBundle == nil) {
- resourcesBundle = mainBundle;
- }
-
- keyboardNextiOS10Image = [UIImage imageNamed:@"IQButtonBarArrowDown" inBundle:resourcesBundle compatibleWithTraitCollection:nil];
-
- //Support for RTL languages like Arabic, Persia etc... (Bug ID: #448)
- #ifdef __IPHONE_11_0
- if (@available(iOS 9.0, *)) {
- #endif
- if ([UIImage instancesRespondToSelector:@selector(imageFlippedForRightToLeftLayoutDirection)])
- {
- keyboardNextiOS10Image = [keyboardNextiOS10Image imageFlippedForRightToLeftLayoutDirection];
- }
- #ifdef __IPHONE_11_0
- }
- #endif
- }
-
- return keyboardNextiOS10Image;
- }
- +(UIImage*)keyboardPreviousImage
- {
- #ifdef __IPHONE_11_0
- if (@available(iOS 10.0, *))
- #else
- if (IQ_IS_IOS10_OR_GREATER)
- #endif
- {
- return [UIImage keyboardPreviousiOS10Image];
- }
- else
- {
- return [UIImage keyboardPreviousiOS9Image];
- }
- }
- +(UIImage*)keyboardNextImage
- {
- #ifdef __IPHONE_11_0
- if (@available(iOS 10.0, *))
- #else
- if (IQ_IS_IOS10_OR_GREATER)
- #endif
- {
- return [UIImage keyboardNextiOS10Image];
- }
- else
- {
- return [UIImage keyboardNextiOS9Image];
- }
- }
- @end
- /*UIKeyboardToolbar Category implementation*/
- @implementation UIView (IQToolbarAddition)
- -(IQToolbar *)keyboardToolbar
- {
- IQToolbar *keyboardToolbar = nil;
- if ([[self inputAccessoryView] isKindOfClass:[IQToolbar class]])
- {
- keyboardToolbar = [self inputAccessoryView];
- }
- else
- {
- keyboardToolbar = objc_getAssociatedObject(self, @selector(keyboardToolbar));
-
- if (keyboardToolbar == nil)
- {
- keyboardToolbar = [[IQToolbar alloc] init];
-
- objc_setAssociatedObject(self, @selector(keyboardToolbar), keyboardToolbar, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
- }
- }
-
- return keyboardToolbar;
- }
- -(void)setShouldHideToolbarPlaceholder:(BOOL)shouldHideToolbarPlaceholder
- {
- objc_setAssociatedObject(self, @selector(shouldHideToolbarPlaceholder), @(shouldHideToolbarPlaceholder), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
- self.keyboardToolbar.titleBarButton.title = self.drawingToolbarPlaceholder;
- }
- -(BOOL)shouldHideToolbarPlaceholder
- {
- NSNumber *shouldHideToolbarPlaceholder = objc_getAssociatedObject(self, @selector(shouldHideToolbarPlaceholder));
- return [shouldHideToolbarPlaceholder boolValue];
- }
- -(void)setToolbarPlaceholder:(NSString *)toolbarPlaceholder
- {
- objc_setAssociatedObject(self, @selector(toolbarPlaceholder), toolbarPlaceholder, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
- self.keyboardToolbar.titleBarButton.title = self.drawingToolbarPlaceholder;
- }
- -(NSString *)toolbarPlaceholder
- {
- NSString *toolbarPlaceholder = objc_getAssociatedObject(self, @selector(toolbarPlaceholder));
- return toolbarPlaceholder;
- }
- -(NSString *)drawingToolbarPlaceholder
- {
- if (self.shouldHideToolbarPlaceholder)
- {
- return nil;
- }
- else if (self.toolbarPlaceholder.length != 0)
- {
- return self.toolbarPlaceholder;
- }
- else if ([self respondsToSelector:@selector(placeholder)])
- {
- return [(UITextField*)self placeholder];
- }
- else
- {
- return nil;
- }
- }
- #pragma mark - Private helper
- +(IQBarButtonItem*)flexibleBarButtonItem
- {
- static IQBarButtonItem *nilButton = nil;
-
- if (nilButton == nil)
- {
- nilButton = [[IQBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
- }
-
- return nilButton;
- }
- #pragma mark - Common
- - (void)addKeyboardToolbarWithTarget:(id)target titleText:(NSString*)titleText rightBarButtonConfiguration:(IQBarButtonItemConfiguration*)rightBarButtonConfiguration previousBarButtonConfiguration:(IQBarButtonItemConfiguration*)previousBarButtonConfiguration nextBarButtonConfiguration:(IQBarButtonItemConfiguration*)nextBarButtonConfiguration
- {
- //If can't set InputAccessoryView. Then return
- if (![self respondsToSelector:@selector(setInputAccessoryView:)]) return;
-
- // Creating a toolBar for phoneNumber keyboard
- IQToolbar *toolbar = self.keyboardToolbar;
-
- NSMutableArray<UIBarButtonItem*> *items = [[NSMutableArray alloc] init];
-
- if(previousBarButtonConfiguration)
- {
- IQBarButtonItem *prev = toolbar.previousBarButton;
-
- if (prev.isSystemItem == NO && (previousBarButtonConfiguration.image || previousBarButtonConfiguration.title))
- {
- prev.title = previousBarButtonConfiguration.title;
- prev.image = previousBarButtonConfiguration.image;
- prev.target = target;
- prev.action = previousBarButtonConfiguration.action;
- }
- else if (previousBarButtonConfiguration.image)
- {
- prev = [[IQBarButtonItem alloc] initWithImage:previousBarButtonConfiguration.image style:UIBarButtonItemStylePlain target:target action:previousBarButtonConfiguration.action];
- prev.invocation = toolbar.previousBarButton.invocation;
- prev.accessibilityLabel = toolbar.previousBarButton.accessibilityLabel;
- toolbar.previousBarButton = prev;
- }
- else if (previousBarButtonConfiguration.title)
- {
- prev = [[IQBarButtonItem alloc] initWithTitle:previousBarButtonConfiguration.title style:UIBarButtonItemStylePlain target:target action:previousBarButtonConfiguration.action];
- prev.invocation = toolbar.previousBarButton.invocation;
- prev.accessibilityLabel = toolbar.previousBarButton.accessibilityLabel;
- toolbar.previousBarButton = prev;
- }
- else
- {
- prev = [[IQBarButtonItem alloc] initWithBarButtonSystemItem:previousBarButtonConfiguration.barButtonSystemItem target:target action:previousBarButtonConfiguration.action];
- prev.invocation = toolbar.previousBarButton.invocation;
- prev.accessibilityLabel = toolbar.previousBarButton.accessibilityLabel;
- toolbar.previousBarButton = prev;
- }
-
- [items addObject:prev];
- }
-
- if (previousBarButtonConfiguration != nil && nextBarButtonConfiguration != nil)
- {
- [items addObject:toolbar.fixedSpaceBarButton];
- }
- if(nextBarButtonConfiguration)
- {
- IQBarButtonItem *next = toolbar.nextBarButton;
-
- if (next.isSystemItem == NO && (nextBarButtonConfiguration.image || nextBarButtonConfiguration.title))
- {
- next.title = nextBarButtonConfiguration.title;
- next.image = nextBarButtonConfiguration.image;
- next.target = target;
- next.action = nextBarButtonConfiguration.action;
- }
- else if (nextBarButtonConfiguration.image)
- {
- next = [[IQBarButtonItem alloc] initWithImage:nextBarButtonConfiguration.image style:UIBarButtonItemStylePlain target:target action:nextBarButtonConfiguration.action];
- next.invocation = toolbar.nextBarButton.invocation;
- next.accessibilityLabel = toolbar.nextBarButton.accessibilityLabel;
- toolbar.nextBarButton = next;
- }
- else if (nextBarButtonConfiguration.title)
- {
- next = [[IQBarButtonItem alloc] initWithTitle:nextBarButtonConfiguration.title style:UIBarButtonItemStylePlain target:target action:nextBarButtonConfiguration.action];
- next.invocation = toolbar.nextBarButton.invocation;
- next.accessibilityLabel = toolbar.nextBarButton.accessibilityLabel;
- toolbar.nextBarButton = next;
- }
- else
- {
- next = [[IQBarButtonItem alloc] initWithBarButtonSystemItem:nextBarButtonConfiguration.barButtonSystemItem target:target action:nextBarButtonConfiguration.action];
- next.invocation = toolbar.nextBarButton.invocation;
- next.accessibilityLabel = toolbar.nextBarButton.accessibilityLabel;
- toolbar.nextBarButton = next;
- }
-
- [items addObject:next];
- }
-
- //Title
- {
- //Flexible space
- [items addObject:[[self class] flexibleBarButtonItem]];
-
- //Title button
- toolbar.titleBarButton.title = titleText;
- #ifdef __IPHONE_11_0
- if (@available(iOS 11.0, *)) {}
- else
- #endif
- {
- toolbar.titleBarButton.customView.frame = CGRectZero;
- }
- [items addObject:toolbar.titleBarButton];
-
- //Flexible space
- [items addObject:[[self class] flexibleBarButtonItem]];
- }
-
- if(rightBarButtonConfiguration)
- {
- IQBarButtonItem *done = toolbar.doneBarButton;
-
- if (done.isSystemItem == NO && (rightBarButtonConfiguration.image || rightBarButtonConfiguration.title))
- {
- done.title = rightBarButtonConfiguration.title;
- done.image = rightBarButtonConfiguration.image;
- done.target = target;
- done.action = rightBarButtonConfiguration.action;
- }
- else if (rightBarButtonConfiguration.image)
- {
- done = [[IQBarButtonItem alloc] initWithImage:rightBarButtonConfiguration.image style:UIBarButtonItemStylePlain target:target action:rightBarButtonConfiguration.action];
- done.invocation = toolbar.doneBarButton.invocation;
- done.accessibilityLabel = toolbar.doneBarButton.accessibilityLabel;
- toolbar.doneBarButton = done;
- }
- else if (rightBarButtonConfiguration.title)
- {
- done = [[IQBarButtonItem alloc] initWithTitle:rightBarButtonConfiguration.title style:UIBarButtonItemStylePlain target:target action:rightBarButtonConfiguration.action];
- done.invocation = toolbar.doneBarButton.invocation;
- done.accessibilityLabel = toolbar.doneBarButton.accessibilityLabel;
- toolbar.doneBarButton = done;
- }
- else
- {
- done = [[IQBarButtonItem alloc] initWithBarButtonSystemItem:rightBarButtonConfiguration.barButtonSystemItem target:target action:rightBarButtonConfiguration.action];
- done.invocation = toolbar.doneBarButton.invocation;
- done.accessibilityLabel = toolbar.doneBarButton.accessibilityLabel;
- toolbar.doneBarButton = done;
- }
-
- [items addObject:done];
- }
- // Adding button to toolBar.
- [toolbar setItems:items];
-
- // Setting toolbar to keyboard.
- [(UITextField*)self setInputAccessoryView:toolbar];
-
- if ([self respondsToSelector:@selector(keyboardAppearance)])
- {
- switch ([(UITextField*)self keyboardAppearance])
- {
- case UIKeyboardAppearanceDark: toolbar.barStyle = UIBarStyleBlack; break;
- default: toolbar.barStyle = UIBarStyleDefault; break;
- }
- }
- }
- #pragma mark - Right
- - (void)addRightButtonOnKeyboardWithText:(NSString*)text target:(id)target action:(SEL)action
- {
- [self addRightButtonOnKeyboardWithText:text target:target action:action titleText:nil];
- }
- - (void)addRightButtonOnKeyboardWithText:(NSString*)text target:(id)target action:(SEL)action shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
- {
- [self addRightButtonOnKeyboardWithText:text target:target action:action titleText:(shouldShowPlaceholder?[self drawingToolbarPlaceholder]:nil)];
- }
- - (void)addRightButtonOnKeyboardWithText:(NSString*)text target:(id)target action:(SEL)action titleText:(NSString*)titleText
- {
- IQBarButtonItemConfiguration *rightConfiguration = [[IQBarButtonItemConfiguration alloc] initWithTitle:text action:action];
-
- [self addKeyboardToolbarWithTarget:target titleText:titleText rightBarButtonConfiguration:rightConfiguration previousBarButtonConfiguration:nil nextBarButtonConfiguration:nil];
- }
- - (void)addRightButtonOnKeyboardWithImage:(UIImage*)image target:(id)target action:(SEL)action
- {
- [self addRightButtonOnKeyboardWithImage:image target:target action:action titleText:nil];
- }
- - (void)addRightButtonOnKeyboardWithImage:(UIImage*)image target:(id)target action:(SEL)action shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
- {
- [self addRightButtonOnKeyboardWithImage:image target:target action:action titleText:(shouldShowPlaceholder?[self drawingToolbarPlaceholder]:nil)];
- }
- - (void)addRightButtonOnKeyboardWithImage:(UIImage*)image target:(id)target action:(SEL)action titleText:(NSString*)titleText
- {
- IQBarButtonItemConfiguration *rightConfiguration = [[IQBarButtonItemConfiguration alloc] initWithImage:image action:action];
-
- [self addKeyboardToolbarWithTarget:target titleText:titleText rightBarButtonConfiguration:rightConfiguration previousBarButtonConfiguration:nil nextBarButtonConfiguration:nil];
- }
- -(void)addDoneOnKeyboardWithTarget:(id)target action:(SEL)action
- {
- [self addDoneOnKeyboardWithTarget:target action:action titleText:nil];
- }
- -(void)addDoneOnKeyboardWithTarget:(id)target action:(SEL)action shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
- {
- [self addDoneOnKeyboardWithTarget:target action:action titleText:(shouldShowPlaceholder?[self drawingToolbarPlaceholder]:nil)];
- }
- - (void)addDoneOnKeyboardWithTarget:(id)target action:(SEL)action titleText:(NSString*)titleText
- {
- IQBarButtonItemConfiguration *rightConfiguration = [[IQBarButtonItemConfiguration alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone action:action];
-
- [self addKeyboardToolbarWithTarget:target titleText:titleText rightBarButtonConfiguration:rightConfiguration previousBarButtonConfiguration:nil nextBarButtonConfiguration:nil];
- }
- - (void)addLeftRightOnKeyboardWithTarget:(id)target leftButtonTitle:(NSString*)leftTitle rightButtonTitle:(NSString*)rightTitle leftButtonAction:(SEL)leftAction rightButtonAction:(SEL)rightAction
- {
- [self addLeftRightOnKeyboardWithTarget:target leftButtonTitle:leftTitle rightButtonTitle:rightTitle leftButtonAction:leftAction rightButtonAction:rightAction titleText:nil];
- }
- - (void)addLeftRightOnKeyboardWithTarget:(id)target leftButtonTitle:(NSString*)leftTitle rightButtonTitle:(NSString*)rightTitle leftButtonAction:(SEL)leftAction rightButtonAction:(SEL)rightAction shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
- {
- [self addLeftRightOnKeyboardWithTarget:target leftButtonTitle:leftTitle rightButtonTitle:rightTitle leftButtonAction:leftAction rightButtonAction:rightAction titleText:(shouldShowPlaceholder?[self drawingToolbarPlaceholder]:nil)];
- }
- - (void)addLeftRightOnKeyboardWithTarget:(id)target leftButtonTitle:(NSString*)leftTitle rightButtonTitle:(NSString*)rightTitle leftButtonAction:(SEL)leftAction rightButtonAction:(SEL)rightAction titleText:(NSString*)titleText
- {
- IQBarButtonItemConfiguration *leftConfiguration = [[IQBarButtonItemConfiguration alloc] initWithTitle:leftTitle action:leftAction];
-
- IQBarButtonItemConfiguration *rightConfiguration = [[IQBarButtonItemConfiguration alloc] initWithTitle:rightTitle action:rightAction];
- [self addKeyboardToolbarWithTarget:target titleText:titleText rightBarButtonConfiguration:rightConfiguration previousBarButtonConfiguration:leftConfiguration nextBarButtonConfiguration:nil];
- }
- -(void)addCancelDoneOnKeyboardWithTarget:(id)target cancelAction:(SEL)cancelAction doneAction:(SEL)doneAction
- {
- [self addCancelDoneOnKeyboardWithTarget:target cancelAction:cancelAction doneAction:doneAction titleText:nil];
- }
- -(void)addCancelDoneOnKeyboardWithTarget:(id)target cancelAction:(SEL)cancelAction doneAction:(SEL)doneAction shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
- {
- [self addCancelDoneOnKeyboardWithTarget:target cancelAction:cancelAction doneAction:doneAction titleText:(shouldShowPlaceholder?[self drawingToolbarPlaceholder]:nil)];
- }
- - (void)addCancelDoneOnKeyboardWithTarget:(id)target cancelAction:(SEL)cancelAction doneAction:(SEL)doneAction titleText:(NSString*)titleText
- {
- IQBarButtonItemConfiguration *leftConfiguration = [[IQBarButtonItemConfiguration alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel action:cancelAction];
-
- IQBarButtonItemConfiguration *rightConfiguration = [[IQBarButtonItemConfiguration alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone action:doneAction];
-
- [self addKeyboardToolbarWithTarget:target titleText:titleText rightBarButtonConfiguration:rightConfiguration previousBarButtonConfiguration:leftConfiguration nextBarButtonConfiguration:nil];
- }
- -(void)addPreviousNextDoneOnKeyboardWithTarget:(id)target previousAction:(SEL)previousAction nextAction:(SEL)nextAction doneAction:(SEL)doneAction
- {
- [self addPreviousNextDoneOnKeyboardWithTarget:target previousAction:previousAction nextAction:nextAction doneAction:doneAction titleText:nil];
- }
- -(void)addPreviousNextDoneOnKeyboardWithTarget:(id)target previousAction:(SEL)previousAction nextAction:(SEL)nextAction doneAction:(SEL)doneAction shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
- {
- [self addPreviousNextDoneOnKeyboardWithTarget:target previousAction:previousAction nextAction:nextAction doneAction:doneAction titleText:(shouldShowPlaceholder?[self drawingToolbarPlaceholder]:nil)];
- }
- - (void)addPreviousNextDoneOnKeyboardWithTarget:(id)target previousAction:(SEL)previousAction nextAction:(SEL)nextAction doneAction:(SEL)doneAction titleText:(NSString*)titleText
- {
- IQBarButtonItemConfiguration *previousConfiguration = [[IQBarButtonItemConfiguration alloc] initWithImage:[UIImage keyboardPreviousImage] action:previousAction];
-
- IQBarButtonItemConfiguration *nextConfiguration = [[IQBarButtonItemConfiguration alloc] initWithImage:[UIImage keyboardNextImage] action:nextAction];
-
- IQBarButtonItemConfiguration *rightConfiguration = [[IQBarButtonItemConfiguration alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone action:doneAction];
-
- [self addKeyboardToolbarWithTarget:target titleText:titleText rightBarButtonConfiguration:rightConfiguration previousBarButtonConfiguration:previousConfiguration nextBarButtonConfiguration:nextConfiguration];
- }
- - (void)addPreviousNextRightOnKeyboardWithTarget:(nullable id)target rightButtonImage:(nullable UIImage*)rightButtonImage previousAction:(nullable SEL)previousAction nextAction:(nullable SEL)nextAction rightButtonAction:(nullable SEL)rightButtonAction
- {
- [self addPreviousNextRightOnKeyboardWithTarget:target rightButtonImage:rightButtonImage previousAction:previousAction nextAction:nextAction rightButtonAction:rightButtonAction titleText:nil];
- }
- - (void)addPreviousNextRightOnKeyboardWithTarget:(nullable id)target rightButtonImage:(nullable UIImage*)rightButtonImage previousAction:(nullable SEL)previousAction nextAction:(nullable SEL)nextAction rightButtonAction:(nullable SEL)rightButtonAction shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
- {
- [self addPreviousNextRightOnKeyboardWithTarget:target rightButtonImage:rightButtonImage previousAction:previousAction nextAction:nextAction rightButtonAction:rightButtonAction titleText:(shouldShowPlaceholder?[self drawingToolbarPlaceholder]:nil)];
- }
- - (void)addPreviousNextRightOnKeyboardWithTarget:(id)target rightButtonImage:(UIImage*)rightButtonImage previousAction:(SEL)previousAction nextAction:(SEL)nextAction rightButtonAction:(SEL)rightButtonAction titleText:(NSString*)titleText
- {
- IQBarButtonItemConfiguration *previousConfiguration = [[IQBarButtonItemConfiguration alloc] initWithImage:[UIImage keyboardPreviousImage] action:previousAction];
-
- IQBarButtonItemConfiguration *nextConfiguration = [[IQBarButtonItemConfiguration alloc] initWithImage:[UIImage keyboardNextImage] action:nextAction];
-
- IQBarButtonItemConfiguration *rightConfiguration = [[IQBarButtonItemConfiguration alloc] initWithImage:rightButtonImage action:rightButtonAction];
-
- [self addKeyboardToolbarWithTarget:target titleText:titleText rightBarButtonConfiguration:rightConfiguration previousBarButtonConfiguration:previousConfiguration nextBarButtonConfiguration:nextConfiguration];
- }
- - (void)addPreviousNextRightOnKeyboardWithTarget:(id)target rightButtonTitle:(NSString*)rightButtonTitle previousAction:(SEL)previousAction nextAction:(SEL)nextAction rightButtonAction:(SEL)rightButtonAction
- {
- [self addPreviousNextRightOnKeyboardWithTarget:target rightButtonTitle:rightButtonTitle previousAction:previousAction nextAction:nextAction rightButtonAction:rightButtonAction titleText:nil];
- }
- - (void)addPreviousNextRightOnKeyboardWithTarget:(id)target rightButtonTitle:(NSString*)rightButtonTitle previousAction:(SEL)previousAction nextAction:(SEL)nextAction rightButtonAction:(SEL)rightButtonAction shouldShowPlaceholder:(BOOL)shouldShowPlaceholder
- {
- [self addPreviousNextRightOnKeyboardWithTarget:target rightButtonTitle:rightButtonTitle previousAction:previousAction nextAction:nextAction rightButtonAction:rightButtonAction titleText:(shouldShowPlaceholder?[self drawingToolbarPlaceholder]:nil)];
- }
- - (void)addPreviousNextRightOnKeyboardWithTarget:(id)target rightButtonTitle:(NSString*)rightButtonTitle previousAction:(SEL)previousAction nextAction:(SEL)nextAction rightButtonAction:(SEL)rightButtonAction titleText:(NSString*)titleText
- {
- IQBarButtonItemConfiguration *previousConfiguration = [[IQBarButtonItemConfiguration alloc] initWithImage:[UIImage keyboardPreviousImage] action:previousAction];
-
- IQBarButtonItemConfiguration *nextConfiguration = [[IQBarButtonItemConfiguration alloc] initWithImage:[UIImage keyboardNextImage] action:nextAction];
-
- IQBarButtonItemConfiguration *rightConfiguration = [[IQBarButtonItemConfiguration alloc] initWithTitle:rightButtonTitle action:rightButtonAction];
-
- [self addKeyboardToolbarWithTarget:target titleText:titleText rightBarButtonConfiguration:rightConfiguration previousBarButtonConfiguration:previousConfiguration nextBarButtonConfiguration:nextConfiguration];
- }
- @end
|