43 lines
996 B
Objective-C
43 lines
996 B
Objective-C
//
|
|
// UIButton+DSButtonBlock.m
|
|
// DSChat
|
|
//
|
|
// Created by Mac on 2022/6/14.
|
|
// Copyright © 2022 DS. All rights reserved.
|
|
//
|
|
|
|
#import "UIButton+DSButtonBlock.h"
|
|
|
|
#import <objc/runtime.h>
|
|
|
|
@implementation UIButton (DSButtonBlock)
|
|
|
|
static char ActionTag;
|
|
/**
|
|
* button 添加点击事件
|
|
*/
|
|
- (void)addAction:(ButtonBlock)block
|
|
{
|
|
objc_setAssociatedObject(self, &ActionTag, block, OBJC_ASSOCIATION_COPY_NONATOMIC);
|
|
[self addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];
|
|
}
|
|
|
|
/**
|
|
* button 添加事件
|
|
*/
|
|
- (void)addAction:(ButtonBlock)block forControlEvents:(UIControlEvents)controlEvents
|
|
{
|
|
objc_setAssociatedObject(self, &ActionTag, block, OBJC_ASSOCIATION_COPY_NONATOMIC);
|
|
[self addTarget:self action:@selector(action:) forControlEvents:controlEvents];
|
|
}
|
|
|
|
- (void)action:(id)sender
|
|
{
|
|
ButtonBlock blockAction = (ButtonBlock)objc_getAssociatedObject(self, &ActionTag);
|
|
if (blockAction) {
|
|
blockAction(self);
|
|
}
|
|
}
|
|
|
|
@end
|