【问题标题】:Determining available runtime attributes for a UI element in Interface Builder在 Interface Builder 中确定 UI 元素的可用运行时属性
【发布时间】:2017-07-31 21:23:50
【问题描述】:

我一直在玩我的故事板中的一个按钮,并且很难在它周围设置边框,直到我找到一个显示如何添加用户定义的运行时属性的页面。我能够使按钮看起来像我想要的那样,但我想知道是否有办法让我查看特定对象的可用属性列表。

单击“+”添加新属性并没有提供任何类型的自动完成来显示可用的属性,并且查看我的项目代码似乎也没有显示任何内容,这不足为奇。在某个地方我可以找到 Xcode 中所有/任何对象的所有可用属性吗?到目前为止,在 SO 上的搜索通常没有显示任何有用的结果。

【问题讨论】:

  • 您可以通过代码实现相同的目标,因此只需检查 UIButton 的属性(可在文档中找到并带有自动完成功能),您就可以了。
  • UIButton. 没有“layer”属性或“borderWidth”...我在那里缺少什么?
  • 您可能正在尝试使用UIButton.layer 而不是UIButton().layer。两者都是实例属性而不是类属性,所以需要通过实例来访问。
  • UIButton 拥有layer inherited from UIView
  • Apple 的文档从来没有很好地帮助您找到这样的东西。 (去年他们让情况变得更糟。)祝你好运。

标签: ios cocoa-touch interface-builder


【解决方案1】:

您可以通过代码实现相同的目标,因此只需检查UIButton 的属性(可在文档中找到并带有自动完成功能),您就可以了。

您还必须确保检查的是 UIButton 实例的属性,而不是类属性。

【讨论】:

    【解决方案2】:

    用户定义的运行时属性是NIB加载子系统通过未归档进程使用的关键路径列表。初始化后消息 -setValue:forKeyPath: 将被发送到您的取消归档对象,用于此列表中的每个关键路径。所以可用的属性不超过所有方法的集合,选择器排序为 -setAttribute: 和带有“_attribute”或“attribute”名称的 ivars。 您可以在公共标题或文档中找到所有公共属性。 也可以设置私有属性,但这不是一个好习惯。例如,您可以在任何方法中通过断点执行找到所有 ivars,并查看“self”内部。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多