如何在不使用助理编辑器的情况下将IBOutlet和IBAction连接到视图控制器

10

我知道这里的第二个按钮显示了助理编辑器:

enter image description here

我知道如何通过从Interface Builder中的对象控制拖动到View Controller代码来创建Outlet和Action。理想情况下,这应该像文档描述的那样简单:

enter image description here

但是当我按下“Assistant”编辑器时,通常Xcode实际上看起来像这样:

enter image description here

混乱。我必须最小化很多东西,尝试让Storyboard对象可见,然后找到正确的View Controller。所有这些都是在我可以进行Control-drag之前完成的。

有没有一种不使用助理编辑器就能建立连接的方法?(最好不用自己键入大量代码。)

2个回答

10
不要按助理编辑器按钮。有时它会打开一个随机文件而不是你想要的那个。
当你在 Storyboard 中时,选项点击项目导航器中要打开的 .h 文件。这将打开正确的 .h 文件以添加接口或操作。
完成后,关闭显示 .h 文件的助理编辑器右侧窗格,然后你将回到 Storyboard。

非常有用的技巧。我会试着操作一段时间,看哪个更快、需要较少的操纵。 - Suragch
@Suragch 另一种选择是完全以编程方式进行操作,但这样你就必须使用VFL而不是Storyboard中的自动布局。在Storyboard中,你需要处理VC类的设置和上述问题,但你可以拖动视图元素到屏幕上。这只取决于哪种方式对你来说更省事。 - noobsmcgoobs

6

是的,您可以不使用助手编辑器和大量编写代码来完成。需要学习做两件事:

  1. 使用代码片段
  2. 使用连接检查器

为IBOutlet和IBAction创建代码片段

通常情况下,当您使用助手编辑器创建IBOutlet和IBAction时,它会自动将类似以下代码添加到您的视图控制器中:

@IBOutlet weak var myOutletName: UIButton!

@IBAction func myActionName(sender: AnyObject) {
}

您可以手动输入这些内容并在连接检查器中添加连接,但是为什么要那样做呢?只需创建一个代码片段即可自动完成。将代码拖到实用程序面板中的“Code Snippets”库中。
给它一个标题,最重要的是,一个完成快捷方式。我称之为“ibaction”,代表@IBAction代码。
现在,我只需要开始键入“ibaction”,就可以自动完成代码片段。我只需要编辑操作的名称。 Outlet 也是类似的过程。
更多关于创建代码片段的信息:
- Xcode Snippets - Creating a Custom Code Snippet
现在您所要做的就是将 IB 对象与代码连接起来。
使用 Connections 检查器建立连接
首先,在 storyboard 中单击要连接的对象。我使用的是 Button。
然后选择 Connections 检查器。它在最右边。
或者,您可以右键单击对象以获取菜单。
接下来,单击 New Referencing Outlet 将其连接到您的 Outlet 或单击 Sent Events 下的 Touch Up Inside 将其连接到您的 Action。
出于某种原因,有时我发现需要在单击“+”按钮后再拖动一点才能显示可用连接的菜单。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接