【问题标题】:NSViewController and bindingsNSViewController 和绑定
【发布时间】:2012-01-30 07:47:14
【问题描述】:

在我的应用程序中,我有一个 nib 文件。 File's OwnerNSViewController 内部只有一个垂直滑块,我想将它绑定到我的一个类中的属性。 (我没有任何其他 nib 文件,因为它是一个状态栏应用程序,所以我没有窗口)。 nib 在运行时加载以创建 NSMenuItem 的自定义视图。

问题是我想使用对象控制器进行绑定,但我不确定对象控制器的内容是什么。如何从 nib 访问项目中的任意类?

在我看到的示例中,通常对象控制器使用File's Owner 来访问将内容对象绑定设置为文件所有者的类(以及绑定的属性)。但在我的情况下,来自文件所有者,我无权访问该类。

任何指针?

【问题讨论】:

    标签: objective-c macos cocoa


    【解决方案1】:

    好的,这对我有用。对NSViewController 进行子类化就足够了,并将新的子类设置为File's Owner。现在可以使用Controller Object 通过File's Owner 绑定。

    【讨论】:

      【解决方案2】:

      如果您使用 XCode 4,您可以 Control-从滑块拖动到 .h 文件(AppController.h?),您将获得生成出口或动作的选项。如果你想创建一个动作,由滑动滑块引起,你应该选择动作。每当更改滑块时,都会调用生成的方法。如果您希望滑块值对事件(或程序中更改的实例变量)做出反应,请将其设置为“出口”。 希望对您有所帮助,如果您真的在寻找其他东西,请告诉我:-)

      【讨论】:

      • 嗯,实际上我想使用绑定来做到这一点,而无需出口和操作。我发现这很有趣post。似乎更好的解决方案是将 NSViewController 子类化并使用文件所有者进行绑定。
      • 我明白了,你是对的。在这种情况下,我的“解决方案”将不起作用!您的解决方案似乎应该有效。但是,我很好奇为什么您更喜欢子类,而宁愿不使用 outlets 和 action。
      • 我需要在我的程序中将一个垂直滑块连接到一个音量属性。我认为使用绑定是最正确的方式(当然也可以使用 outlet 和 actions)。
      • 顺便说一句,第一个示例 here 对于理解绑定非常有用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多