我已经调查了很多对NIB / XIB格式的理解,我似乎无法找到有关该主题的更多信息。我有兴趣了解iOS如何将事件编码到按钮按下等。例如,我知道他们调用的按钮和处理程序可以动态分配,但我特别感兴趣的是知道如何解码NIB / XIB,以便我可以知道为给定按钮调用哪个click事件。我很有兴趣了解IBOutlets如何连接以及我如何知道某个事件可以访问哪些功能。
我正在开发一个自动测试框架,这个功能将极大地帮助我的工具的可用性。非常感谢您提供的任何见解。
答案 0 :(得分:0)
如果在文本编辑器中打开.xib文件,您将看到它是用XML编码的。排列XML节点描述了视图层次结构的结构,以及要分配给给定键路径的值或这些视图的控制状态。您可以看到如此描述的IBAction连接:
<connections>
<action selector="buttonPressed:" destination="-1" eventType="touchUpInside" id="290"/>
</connections>
任何操作连接的选择器都应由File的所有者实现,您可以找到它作为<objects>
部分下的第一个元素。它看起来像这样:
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SomeViewController">
同样重要的是要注意<resources>
部分,它描述了xib使用的任何资源(通常是图像)。