Swift:以编程方式 load/connect 到在 Interface Builder 中创建的控件

Swift: programmatically load/connect to controls created in Interface Builder

假设我有一个 OSX 应用程序,其中有一些精灵四处移动,称它们为小精灵。当我点击一个 gremlin 时,我想显示一些滑块来控制该 gremlin 的一些属性,可能是比例、速度、方向等,然后再次单击 gremlin 以关闭滑块。然后单击另一个 gremlin 并显示滑块以控制它的属性。我可以很容易地创建一些 NSSliders 并在代码中设置它们。但我更愿意在 Interface Builder 中创建一组滑块,并按需加载它们:如果我想重新排列它们并调整它们的相对位置,最好使用该可视化界面,而不是让fiddle 代码,重新编译,运行,点击一个 gremlin,看看它的外观。另外,总体而言它似乎是更好的设计——但我不知道,我是 Apple Land 的新手,还没有在这个环境中做任何专业的事情。

我已经尝试在 "Swift: programmatically load/connect to controls created in Interface Builder" 上搜索我能想到的每个变体,但没有找到任何关于如何做到这一点的演示或讨论,甚至没有找到任何人这样做的迹象。这让我担心这不是 Apple Land 做事的方式。这可能吗? Prohibitively/unnecessarily难吗?这是人们所做的吗?如果可能的话,它叫什么,即,我可以 google 了解更多信息?

尝试寻找 "reusing a view xib"。

这似乎是一个很好的起点:Example

  1. 创建 xib 文件
  2. 在 Interface Builder 中设计
  3. 创建自定义 UIView 文件并为视图创建初始化程序
  4. 将文件添加为 xib(界面生成器)的所有者
  5. 将元素从 xib 连接到 Outlets
  6. 在 UIView 文件初始化中加载 xib
  7. 将其分配给您创建的新 UIView