【问题标题】:Can I define an outlet in a .nib without specifying a controller?我可以在 .nib 中定义插座而不指定控制器吗?
【发布时间】:2011-09-11 17:43:26
【问题描述】:

我有一个带有按钮的笔尖,我希望相关控制器可以访问该按钮。但是现在所有者是一个通用的 NSViewController,在 AppDelegate 中我将 nib 分配给控制器,如下所示:

[browseViewController initWithNibName:@"BrowseView" bundle:[NSBundle mainBundle]];

但是是否可以在 nib 文件中一般分配按钮的引用插座?换句话说,给插座一个名称并将其指向文件的所有者,然后如果/当笔尖连接到控制器时,如果该控制器有一个同名的插座,它就可以工作?

【问题讨论】:

    标签: objective-c cocoa


    【解决方案1】:

    当您在 IB 中连接时,文件所有者必须具有特定的出口和/或操作。即使您可以将它连接到一个不存在的插座,加载笔尖时也会引发异常。我要检查它是否创建一个插座,将其连接到一个对象,保存笔尖,从对象中删除插座并运行应用程序。将引发 NSUnknownKeyException。

    最简单的方法是使用控制器的通用超类。如果控制器不能从共同祖先派生,我看到的唯一解决方法是制定一个协议,您可以在其中定义您的插座属性和操作。制作符合协议的对象

    MyObject: NSObject

    现在在笔尖中使用这个对象来连接出口和动作。 但是,属性和方法不能是可选的,你必须实现它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-30
      • 2017-04-15
      • 1970-01-01
      • 1970-01-01
      • 2021-08-30
      • 1970-01-01
      • 2023-01-19
      相关资源
      最近更新 更多