首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将NSTextField对象连接到AppDelegate.swift中的IBOutlet

将NSTextField对象连接到AppDelegate.swift中的IBOutlet
EN

Stack Overflow用户
提问于 2016-03-02 02:33:23
回答 2查看 1.1K关注 0票数 3

最近,我一直在努力学习Swift,所以如果这似乎是一个相对简单的问题,请原谅我。

由于某些原因,控件--单击选项卡视图控制器中的NSTextField对象并拖动--并不会给我“插入出口或操作”的选项,而是当我滚动到兼容对象(在本例中是超类声明)时,提供“连接绑定”的选项。

为什么我不能插入一个插座或动作,但能够连接一个绑定?

附带问题:什么是约束?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-02 02:53:46

出口只能是您的nib文件/故事板场景的所有者的属性。在大多数情况下都是视图控制器。

这就是您的视图控制器从故事板实例化的结果:

  1. 使用故事板文件中的信息实例化视图。
  2. 连接所有的出口和行动。
  3. 将根视图分配给视图控制器的视图属性。
  4. 调用视图控制器的awakeFromNib方法。 当调用此方法时,视图控制器的特征集合为空,视图可能不在其最终位置。
  5. 调用视图控制器的viewDidLoad方法。使用此方法可以添加或删除视图、修改布局约束以及为视图加载数据。

简短版本:

UIKit为您实例化视图控制器,并按情节提要中的要求添加所有子视图。并将(绑定) subViews连接到它们的出口(如果您创建的话)。

如何解决你的问题

当你打开你的助理编辑。选择自动viewController,如果这不是您创建的东西,您应该创建一个您需要的viewController子类(在本例中是UITabViewController),并将场景的类更改为该子类。

票数 1
EN

Stack Overflow用户

发布于 2016-03-02 03:02:32

当您控制时,您需要在情节提要中有相同的视图控制器-将一个NSTextField拖动到控制器。

编辑:正如Leo在评论中提到的那样,如果您使用故事板,您不能在AppDelegate文件中连接/创建任何IBOutlet,您必须在它的特定控制器中创建放置NSTextField的位置

故事板

如图像所示,如果您在情节提要中,单击控制器上的顶部栏,您将得到图像中显示的选项,选择自动

如果您在情节提要中选择了适当的视图控制器,它应该在自动(viewController.swift)中显示相同的视图控制器文件,方法是选择应该能够控制拖动IBOutlet的文件。

XIB

在Xib中,当您选择Xib并单击'Asssistant‘时,它通常会选择适当的视图控制器,如果不选择Automatic,也如童话板图像所示,您将能够连接IBOultet。

结合

当您控制-拖动IBOutlet时,它会在控件和视图控制器属性之间创建一个连接。

来自苹果公司

Cocoa绑定功能使您能够在数据项与视图中的表示之间建立实时连接。对数据的值所做的任何更改,无论是在视图中还是在存储数据的对象中,都会自动在连接中传播。

您可以在苹果博士中找到有关它的更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35737380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档