2010-01-10 39 views
3

我刚刚开始使用可可绑定,虽然我阅读了大部分文档,但我仍在努力实现一个基本功能,这让我质疑我做错了,也许这只是不可能通过IB。基本可可绑定:从IB中的菜单切换布尔值

目标:有一个名为“切换可见性”的菜单项切换了名为“可见性”的应用程序控制器(AppController)中的布尔属性的状态。我认为这应该完全可以通过IB来完成。

(注:CoreData是不是在这里使用)

我认为需要采取什么是我需要有一个NSObjectController谁的内容输出设置为我的AppController类。那我想我需要使用一个Action Innvocation绑定。但这是我遇到麻烦的地方。

应该选择控制器键吗?模型关键路径应该是我的布尔属性的名称吗?选择器名称应该是什么?

或者是否需要设置一个名为“toggleVisibility”的独立操作方法,我可以绑定?如果我这样做了,为什么我不使用标准的目标/行为关联而不是绑定?

任何输入/方向赞赏。

回答

4

目标:有一个名为“切换可见性”的菜单项切换了名为“可见性”的应用程序控制器(AppController)中的布尔属性的状态。

你的目标告诉你为什么你失败了。

在描述你的目标时,你说你想把这个菜单项设置为命令,动词,命令句 - “切换可见性”。但that's not the right title for the menu item

此外,使用绑定实现动词菜单项固有困难,因为绑定是作业的错误工具。绑定用于在您的用户界面中显示属性。它不适用于执行命令。

正确的标题由正确的基于绑定的解决方案支持。

菜单项的正确标题是“可见”。

这一点应该给你提示如何继续。这里有另一个:当选择可见时,菜单项应该有一个复选标记;当它不可见时,菜单项应该没有标记。

您想将菜单项的属性绑定到控制器的布尔属性上。通常,菜单项的此属性将为state,但由于某种原因,其绑定名为value

因此,将菜单项的绑定value绑定到控制器的布尔属性。

+0

欣赏评论 - 那些实际上并不是项目的名称 - 我只是试图使用通用名称,以免混淆问题。显然我失败了。 :) – wadesworld 2010-01-11 00:19:15

+0

好的,所以不要理会我对你选择的菜单项名称的批评。解决方案保持不变:将菜单项的“值”绑定到控制器的布尔属性。 – 2010-01-11 00:29:00