在调试模式下,在接口构建器中的按钮中查找按钮调用了什么动作



我正在调试一个我没有创建且没有文档的巨大项目。我正在使用调试视图层次结构来停止在需要修改的视图上执行的执行,并且只需要找出视图控制器负责视图以及接口所调用的操作。

我该怎么做?

视图层次结构仅显示通用类,但不显示项目中的特定类。例如,我可以打印一个按钮的描述,但这只会给我内存地址和框架。另外,打印Supperiew仅给我另一个内存地址和框架。

预先感谢您!

我一直在尝试控制台和其他一些帖子,我找到了一个解决方案:

首先,通过右键单击它打印按钮描述(应使用任何视图(

    <UIButton: 0x7feefe5e20c0; frame = (17 266.5; 105 30); clipsToBounds = YES; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x608000236520>>

第二,在" 0x7feefe5e20c0"控制台中使用按钮地址打印按钮的所有目标

po [0x7feefe5e20c0 allTargets]
<ViewControllerClass: 0x7feefe5de7b0>

现在的" ViewControllerClass"已经更接近我的需求,是拥有包含我按钮的视图的视图控制器

第三打印按钮的所有控制事件

(lldb) po [0x7feefe5e20c0 allControlEvents]
0x0000000000000040

以及最终打印按钮的控制事件目标

(lldb) po [0x7feefe5e20c0 actionsForTarget:0x7feefe5de7b0 forControlEvent:0x0000000000000040]
<__NSArrayM 0x7fef00078040>(
    actionCalledByBytton:
)

给我" ActionCalledByBytton"," ViewControllerClass"

上的按钮所调用的动作

tadaa!希望这对某人有帮助。

右键单击接口构建器中的按钮。该操作应在Send Events下列出。

也可以使用addTarget:action:forControlEvents:

编程添加操作。

如果您的按钮中有文本,则可以在查找导航器中搜索按钮的文本并进行一些预测,如果您在按钮上有一个图像,则可以在资产中找到图像名称通过这两个您可以最大程度地减少搜索。如果您找到包含静态文本的任何标签,请搜索文本!可能是这可能会帮助您!

最新更新