From 83b9d5c682b21d88133f24da0f94dd56bd79e687 Mon Sep 17 00:00:00 2001 From: 单军华 Date: Thu, 19 Jul 2018 13:38:55 +0800 Subject: [PATCH] change --- screendisplay/Pods/IQKeyboardManager/IQKeyboardManager/IQToolbar/IQBarButtonItem.m | 99 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 99 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/IQKeyboardManager/IQKeyboardManager/IQToolbar/IQBarButtonItem.m b/screendisplay/Pods/IQKeyboardManager/IQKeyboardManager/IQToolbar/IQBarButtonItem.m new file mode 100644 index 0000000..fb28fb2 --- /dev/null +++ b/screendisplay/Pods/IQKeyboardManager/IQKeyboardManager/IQToolbar/IQBarButtonItem.m @@ -0,0 +1,99 @@ +// +// IQBarButtonItem.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 "IQBarButtonItem.h" +#import "IQKeyboardManagerConstantsInternal.h" +#import <UIKit/NSAttributedString.h> + +@implementation IQBarButtonItem + ++(void)initialize +{ + [super initialize]; + + IQBarButtonItem *appearanceProxy = [self appearance]; + + NSArray <NSNumber*> *states = @[@(UIControlStateNormal),@(UIControlStateHighlighted),@(UIControlStateDisabled),@(UIControlStateSelected),@(UIControlStateApplication),@(UIControlStateReserved)]; + + for (NSNumber *state in states) + { + UIControlState controlState = [state unsignedIntegerValue]; + + [appearanceProxy setBackgroundImage:nil forState:controlState barMetrics:UIBarMetricsDefault]; + [appearanceProxy setBackgroundImage:nil forState:controlState style:UIBarButtonItemStyleDone barMetrics:UIBarMetricsDefault]; + [appearanceProxy setBackgroundImage:nil forState:controlState style:UIBarButtonItemStylePlain barMetrics:UIBarMetricsDefault]; + [appearanceProxy setBackButtonBackgroundImage:nil forState:controlState barMetrics:UIBarMetricsDefault]; + } + + [appearanceProxy setTitlePositionAdjustment:UIOffsetZero forBarMetrics:UIBarMetricsDefault]; + [appearanceProxy setBackgroundVerticalPositionAdjustment:0 forBarMetrics:UIBarMetricsDefault]; + [appearanceProxy setBackButtonBackgroundVerticalPositionAdjustment:0 forBarMetrics:UIBarMetricsDefault]; +} + +-(void)setTintColor:(UIColor *)tintColor +{ + [super setTintColor:tintColor]; + + //titleTextAttributes tweak is to overcome an issue comes with iOS11 where appearanceProxy set for NSForegroundColorAttributeName and bar button texts start appearing in appearance proxy color + NSMutableDictionary *textAttributes = [[self titleTextAttributesForState:UIControlStateNormal] mutableCopy]?:[NSMutableDictionary new]; + + textAttributes[NSForegroundColorAttributeName] = tintColor; + + [self setTitleTextAttributes:textAttributes forState:UIControlStateNormal]; +} + +- (instancetype)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(nullable id)target action:(nullable SEL)action +{ + self = [super initWithBarButtonSystemItem:systemItem target:target action:action]; + + if (self) + { + _isSystemItem = YES; + } + + return self; +} + + +-(void)setTarget:(nullable id)target action:(nullable SEL)action +{ + NSInvocation *invocation = nil; + + if (target && action) + { + invocation = [NSInvocation invocationWithMethodSignature:[target methodSignatureForSelector:action]]; + invocation.target = target; + invocation.selector = action; + } + + self.invocation = invocation; +} + +-(void)dealloc +{ + self.target = nil; + self.invocation.target = nil; + self.invocation = nil; +} + +@end -- Gitblit v1.8.0