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

How to connect an IBOutlet and IBAction to a View Controller without using the Assistant editor

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

而且我知道如何通过从 Interface Builder 中的对象拖动到 View Controller 代码来创建 Outlet 和 Action。理想情况下,它应该像 documentation 让它看起来一样简单:

但这通常是 Xcode 在我按下“助理”编辑器时实际看起来的样子:

一个一团糟。我必须尽量减少很多事情,尝试让情节提要对象出现在视图中,然后找到合适的视图控制器。在我可以进行 Control-drag 操作之前完成所有这些操作。

有没有不用辅助编辑器就可以连接的方法? (而且最好不必自己输入大量代码。)

是的,您可以在没有辅助编辑器的情况下完成,也无需编写大量代码。它需要学习做两件事:

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

为 IBOutlet 和 IBAction 创建代码片段

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

@IBOutlet weak var myOutletName: UIButton!

@IBAction func myActionName(sender: AnyObject) {
}

您可以自己输入所有内容,然后在连接检查器中添加连接,但为什么要输入所有这些内容?只需制作一个将自动完成的代码片段。将代码拖到工具面板中的代码片段库中。

给它一个标题,最重要的是,一个完成快捷方式。我将 @IBAction 代码称为我的“ibaction”。

现在我所要做的就是开始输入“ibaction”,然后我就可以自动完成代码片段了。我只需要编辑动作的名称。这是奥特莱斯的类似过程。

阅读有关创建代码片段的更多信息:

现在您所要做的就是将 IB object 连接到代码。

使用连接检查器建立连接

首先,单击要连接的故事板中的 object。对我来说,我使用的是按钮。

然后 select 连接检查器。它在最右边。

或者,您可以右键单击或控制单击 object 以获取菜单。

然后点击 New Referencing Outlet 将其连接到您的 Outlet 或单击 Sent Events 下的 Touch Up Inside 将其连接到您的 Action。

无论出于何种原因,我发现有时我需要在单击“+”按钮后稍微拖动一下才能显示可用连接的菜单。

不要按助理编辑器按钮。有时它会打开一个随机文件而不是您想要的文件。

当您在 Storyboard 中时,Option 单击要在项目导航器中打开的 .h 文件。这将打开正确的 .h 文件以添加出口或操作。

完成后,关闭助手编辑器右窗格(显示 .h 文件),您将返回 Storyboard。