无法在新的自定义类Xcode 11中连接到IBOutlet

uqxowvwt  于 2023-04-13  发布在  其他
关注(0)|答案(5)|浏览(156)

我正在Xcode 11中开发一个iOS项目,以创建一个将Farenheit转换为Celsius的应用程序。我删除了默认的ViewController.swift文件,并创建了一个自定义类,其名称更具描述性,称为ConversionViewController. swift。然后将该文件保存到当前项目。该文件包含以下代码行:

class ConversionViewController: UIViewController {

    @IBOutlet var celsiusLabel: UILabel!

    @IBAction func fahrenheitFieldEditingChanged(_ textField: UITextField) {
        celsiusLabel.text = textField.text
    }
}

在Main.storyboard中,我选择了文档大纲中的View Controller,然后打开身份检查器。在身份检查器的Custom Class部分中,我将类更改为ConversionViewController,并在模块字段下方选中Inherit module from target。接下来,我想创建一个到Celsius文本标签的出口,并为文本字段创建一个在文本更改时调用的操作。因此,我打开Main.storyboard,尝试按住Ctrl键从文档大纲中的Conversion View Controller拖动到Celsius标签,并将其连接到ConversionViewController. swift中的celsiusLabel
问题是Xcode不允许我这么做。当我控制拖动Conversion View Controller到Celsius标签时,什么也没有发生。我没有得到一个弹出框,让我选择celsiusLabel插座。
我已经尝试去产品--〉清理构建文件夹,但没有解决这个问题。是否有一个步骤丢失?我使用的iOS编程:Big Nerd Ranch Guide第6版,我知道它不是为Xcode 11编写的。

gkl3eglg

gkl3eglg1#

当我从转换视图控制器拖动到摄氏度标签时,什么也没有发生。我没有得到一个弹出框,让我选择出口celsiusLabel。
是的,我经常看到这个问题。通常我可以通过拖动不同的方式来解决它。例如,选择标签,向右切换到“连接”检查器,然后从“新建引用出口”旁边的圆圈拖动到大纲中的视图控制器上。现在它可以让您进行连接吗?

kxe2p93d

kxe2p93d2#

在StoryBoard中,通过单击顶部显示名称的位置来选择ViewController,然后选择连接检查器(最后一个选项)。您将在插座下看到您的摄氏度标签。从标签的空圆圈中拖动到ViewController的视图中的标签并连接。

bvuwiixz

bvuwiixz3#

我也遇到过同样的问题,有两个方法可以解决:
1)在修改.swift文件的名称后,只需清理构建。如果它不允许您创建outlet,则只需退出xcode并再次运行它,然后它将允许您将outlet添加到类中。
2).在连接检查器中,选择引用出口下的圆,并将其拖动到viewController以创建控件的出口。

xurqigkl

xurqigkl4#

这通常发生在我移动或重命名文件时。在这种情况下的修复方法是从“编译源代码”列表中删除文件,然后重新添加。然后构建(不需要干净构建)。

osh3o9ms

osh3o9ms5#

我通过重构ViewController的名称来解决这个问题,而不仅仅是重命名它。

相关问题