我如何在 objective c 中覆盖 UIButton 的 addTarget 方法

How I can override addTarget method of UIButton in objective c

我想要 UIButton TouchUpInside 控件事件的相同操作。例如:

[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];

我想在整个应用程序中概括 buttonAction。执行此操作的最佳方法是什么。这可能使用类别吗?还是子类化?

提前致谢。

您可以在 class 中添加此方法并将 class 名称放入目标中。

YourClass *class = [YouClass alloc]init];
[button addTarget:class action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];

或者您可以使用这样的访问器获得 class

[button addTarget:[A getClassA] action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];

@implementation A
  +(YouClass *) getClassA{
    //get instance if already initialized or init it
    //and return the instance
  }
@end

解决方案取决于您想要实现的目标。如果您想要一个通用操作来修饰整个应用程序中使用按钮的事件,那么使用类别就可以了。 当您想向基础 class 添加新行为(例如向按钮添加自定义布局)时,Sub-classing 非常有用。

希望对您的方法有所帮助!