From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001 From: 单军华 Date: Wed, 11 Jul 2018 10:47:42 +0800 Subject: [PATCH] 首次上传 --- screendisplay/Pods/YYCategories/YYCategories/UIKit/UIBarButtonItem+YYAdd.m | 62 +++++++++++++++++++++++++++++++ 1 files changed, 62 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/YYCategories/YYCategories/UIKit/UIBarButtonItem+YYAdd.m b/screendisplay/Pods/YYCategories/YYCategories/UIKit/UIBarButtonItem+YYAdd.m new file mode 100755 index 0000000..354650b --- /dev/null +++ b/screendisplay/Pods/YYCategories/YYCategories/UIKit/UIBarButtonItem+YYAdd.m @@ -0,0 +1,62 @@ +// +// UIBarButtonItem+YYAdd.m +// YYCategories <https://github.com/ibireme/YYCategories> +// +// Created by ibireme on 13/10/15. +// Copyright (c) 2015 ibireme. +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import "UIBarButtonItem+YYAdd.h" +#import "YYCategoriesMacro.h" +#import <objc/runtime.h> + +YYSYNTH_DUMMY_CLASS(UIBarButtonItem_YYAdd) + + +static const int block_key; + +@interface _YYUIBarButtonItemBlockTarget : NSObject + +@property (nonatomic, copy) void (^block)(id sender); + +- (id)initWithBlock:(void (^)(id sender))block; +- (void)invoke:(id)sender; + +@end + +@implementation _YYUIBarButtonItemBlockTarget + +- (id)initWithBlock:(void (^)(id sender))block{ + self = [super init]; + if (self) { + _block = [block copy]; + } + return self; +} + +- (void)invoke:(id)sender { + if (self.block) self.block(sender); +} + +@end + + +@implementation UIBarButtonItem (YYAdd) + +- (void)setActionBlock:(void (^)(id sender))block { + _YYUIBarButtonItemBlockTarget *target = [[_YYUIBarButtonItemBlockTarget alloc] initWithBlock:block]; + objc_setAssociatedObject(self, &block_key, target, OBJC_ASSOCIATION_RETAIN_NONATOMIC); + + [self setTarget:target]; + [self setAction:@selector(invoke:)]; +} + +- (void (^)(id)) actionBlock { + _YYUIBarButtonItemBlockTarget *target = objc_getAssociatedObject(self, &block_key); + return target.block; +} + +@end -- Gitblit v1.8.0