无法将动作连接到 Xcode 6.1.1 中的现有函数

Posted

技术标签:

【中文标题】无法将动作连接到 Xcode 6.1.1 中的现有函数【英文标题】:Cannot connect action to existing function in Xcode 6.1.1 【发布时间】:2014-12-11 02:15:32 【问题描述】:

我读到可以通过 ctrl-click-dragging 到现有方法将 UIControl 的操作连接到 ViewController 中的现有函数。

我期望它做的是突出显示现有功能,然后设置与它的连接。但是,我已经尝试了很多次,但它似乎不起作用。它总是想插入一个新的(见截图)

我正在使用 Swift(如您所见)和 Xcode 6.1.1。

有没有其他人经历过这种情况?这可能是这个版本的 Xcode 的错误吗?

更新:为了表明即使拖动名称也无济于事:-(

【问题讨论】:

对我来说很好。想法:尝试从第 21 行左侧的圆圈拖动到按钮。 另一个想法:你最后一次退出 Xcode 是什么时候?它有时确实需要一记耳光。退出并重新启动可以解决很多问题。 storyboard中viewController的类与文件的类是否匹配? 上面的截图取自一个新项目,包含 Main.storyboard 和 ViewController.swift。所以它应该是正确的类。 另外,如果重新启动没有帮助,请尝试使用另一个(全新的)项目,因为您的项目有可能以某种方式损坏。我在这里抓住了最后一根稻草,因为很难理解为什么它会提供插入出口或动作但与现有功能的连接。就好像它没有看到现有的函数——这就是为什么我说你至少需要编译。 【参考方案1】:

降级到 Xcode 6.1 后,问题得到解决。

我现在可以将控件连接到 ViewController 上的现有 IBActions

很奇怪。

【讨论】:

【参考方案2】:

它应该工作。我将建议您项目的索引被楔入,cleaning the cache 强制重新索引将解决问题。

这是我执行所需手势的照片(我试图尽可能靠近您的屏幕截图):

【讨论】:

如上图,关键是要实际拖到函数名上。也适用于网点,只要您拖到网点名称上即可。事实上,我不得不这样做,因为 xcode 拒绝创建一个新的出口。 谢谢,我试着直接拖到函数名上,还是不行。我什至将函数签名更改为没有“发件人”参数但没有运气:-/【参考方案3】:

我也和你一样面临这个问题。 很奇怪,每次更新xcode后它都会起作用。在我重新打开 xcode 或重新启动计算机后它不会工作。这让我相信这不是错误或任何应用程序问题。

经过大量实验,我发现了一种解决此问题的奇怪方法。 转到系统首选项和设置。并转到语言和地区。然后更改您的语言和地区。它会要求您重新启动然后重新启动您的mac。至少在那段时间内它应该可以工作。(我很有信心只重新启动您的计算机无济于事......)

【讨论】:

【参考方案4】:

我发现了同样的问题。这个问题是路径引起的。

    查看storyboard和swift文件的路径。位置相同(相对于组),但路径不同,一个是“”,另一个是“../../../”

    如果路径不同,则无法进行连接操作

    it does not work


    确保路径相同。打开并编辑 xcodeproj 文件。

PATH_TO_YOUR_PROJECT/PROJECT_NAME.xcodeproj

将“../../../../../hill/project/ios project/Checklists/Checklists/xxx.swift”替换为“xxx.swift”

    再试一次

    it works

【讨论】:

【参考方案5】:

在 Swift 3 中,我们希望将 @IBAction 的参数类型从 (_ sender: Any) 更改为 (_ sender: UIButton)(_ sender: AnyObject)

但是应该手动完成。

它可能工作得很好。

【讨论】:

【参考方案6】:

在 xCode 7.0.1 中遇到了同样的问题。我尝试重新启动 xcode,确认文件路径在同一组中,清除缓存。最后,重新启动我的电脑解决了这个问题。很简单,但在尝试了 2 小时不同的事情后令人沮丧......

【讨论】:

以上是关于无法将动作连接到 Xcode 6.1.1 中的现有函数的主要内容,如果未能解决你的问题,请参考以下文章

如何将情节提要中的多个按钮连接到单个动作?

Xcode 问题 - 无法将按钮连接到对象

将标签连接到 XCode 5 中的插座

使用多个 ViewController、Xcode 将代码连接到情节提要中的 UI

无法将 iPhone 连接到 Xcode 5.1?

无法将动作 cancelAction: 连接到 NSViewController 类的目标