我希望能够跟踪我的用户正在点击的按钮。有没有办法“捕获”或“记录”我的应用程序内的所有按钮点击?
我在考虑方法调配,但我真的不想这样做。
我希望能够跟踪我的用户正在点击的按钮。有没有办法“捕获”或“记录”我的应用程序内的所有按钮点击?
我在考虑方法调配,但我真的不想这样做。
方面编程可以帮助你。看看这个库:
https://github.com/steipete/Aspects
基本上你会做类似的事情:
[UIButton aspect_hookSelector:@selector(whateverSelectorYouWantToHookOn:)
withOptions:AspectPositionAfter
usingBlock:^(id<AspectInfo> aspectInfo) {
NSLog(@"UIButton called");
}
error:NULL];
查看 AspectInfo 以获取有关所调用实例的更多信息。
您可以继承 UIButton 以添加日志记录。接受的答案
很好地解释了为什么这是子类化可能有用的少数实例之一。
基本上 UIButton 继承自 UIControl 和UIControl 类引用状态
子类化说明 您可能出于以下两个原因之一想要扩展 UIControl 子类:
观察或修改针对特定事件向目标发送操作消息
提供自定义跟踪行为(例如,更改突出显示外观)
按钮可以附加多个操作。您始终可以为每个按钮添加日志记录操作。action 方法接收发送者,因此您可以记录有关被点击按钮的信息。