![](/img/trans.png)
[英]create IBOutlet / IBAction & connect it with UI in a custom class
[英]Cannot connect to IBOutlet in a new custom class Xcode 11
我正在 Xcode 11 中开发一个 iOS 项目,以创建一个将华氏温度转换为摄氏温度的应用程序。 我删除了默认的 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
。 接下来,我想为摄氏度文本标签创建一个出口,并为文本字段创建一个在文本更改时调用的操作。 因此,我打开 Main.storyboard 并尝试从文档大纲中的Conversion View Controller
控制拖动到摄氏度标签,并将其连接到 ConversionViewController.swift 中的celsiusLabel
。
问题是Xcode不会让我。 当我从Conversion View Controller
控制拖动到摄氏度标签时,没有任何反应。 我没有得到一个弹出框,让我可以选择出口celsiusLabel
。
我试过去 Product --> Clean Build Folder 但这并没有解决问题。 是不是少了一步? 我正在使用 iOS Programming: Big Nerd Ranch Guide 6th edition,我知道它不是为 Xcode 11 编写的。
当我从转换视图控制器控制拖动到摄氏度标签时,没有任何反应。 我没有得到一个弹出框,让我可以选择出口 celsiusLabel。
是的,我经常看到这个问题。 通常我可以通过不同的方式拖动来解决它。 例如,选择标签,在右侧切换到 Connections 检查器,然后从 New Referencing Outlet 旁边的圆圈拖到大纲中的视图控制器上。 现在它可以让您建立连接吗?
在您的 StoryBoard 中,通过单击显示名称的顶部选择 ViewController,然后选择连接检查器(最后一个选项)。 您将在插座下方看到您的摄氏度标签。 从标签的空圆圈那里拖到 ViewController 的视图中的标签并连接。
我遇到了同样的问题:- 将通过两种方式解决:-
1) 更改 .swift 文件的名称后,只需清理构建。 如果它不允许您创建插座,则只需退出 xcode 并再次运行它,它将允许您将插座添加到类中。
2)。 在连接检查器中选择引用插座下的圆圈并将其拖到 viewController 以创建控件的插座。
当我移动或重命名文件时,这通常会发生在我身上。 在这些情况下的修复是从“编译源”列表中删除文件,然后重新添加。 然后构建(不需要干净的构建)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.