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

时间:2016-03-02 02:33:24

标签: swift macos nstextfield

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

出于某种原因,在选项卡视图控制器中按住Control键并单击NSTextField对象并拖动并不能为我提供选项以插入插座或操作"而是,#34;连接绑定"当我滚动一个兼容的对象(在这种情况下,它是超类声明)。

为什么我无法插入插座或动作,但能够连接绑定?

方面问题:什么是绑定?

2 个答案:

答案 0 :(得分:1)

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

编辑:正如评论中提到的Leo如果您使用的是故事板,则无法在AppDelegate文件中连接/创建任何IBOutlet,您必须在其中创建NSTextField的特定控制器

enter image description here

<强>故事板
如图所示,如果您在故事板中,单击控制器上的顶部栏,您将获得图像中显示的选项,选择自动
如果您在故事板中选择了正确的视图控制器,它应该在Automatic(viewController.swift)中显示相同的viewcontroller文件,方法是选择您应该控制的文件 - 拖动IBOutlet

<强> XIB
在Xib中选择Xib并单击“Asssistant Editor”时,如果没有选择自动,它通常会转到正确的视图控制器,如故事板图像所示,您将能够连接到IBOultet

<强>装订
当您控制拖动IBOutlet时,它会在您的控件和视图控制器的属性之间创建一个连接

来自Apple Doc

  

Cocoa绑定功能使您能够在视图中建立数据项与其表示之间的实时连接。在视图中或在存储数据的对象中对数据值进行的任何更改都会自动在连接中传播。

您可以在Apple Doc

中找到有关它的更多信息

答案 1 :(得分:0)

插座只能是您的笔尖文件/故事板场景所有者的属性。在大多数情况下,哪个是视图控制器。

这是您的视图控制器从故事板中实例化的内容:

  
      
  1. 使用情节提要文件中的信息实例化视图。
  2.   
  3. 连接所有商店和行动。
  4.   
  5. 将根视图分配给视图控制器的视图属性。
  6.   
  7. 调用视图控制器的awakeFromNib方法   调用此方法时,视图控制器的特征集合为空,视图可能不在最终位置。
  8.   
  9. 调用视图控制器的viewDidLoad方法。   使用此方法可添加或删除视图,修改布局约束以及为视图加载数据。
  10.   

简短版本:

UIKit为您实例化您的视图控制器,并根据故事板中的要求添加所有子视图。并将(绑定)子视图连接到其出口(如果您创建了一个)。

如何解决您的问题

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