0

在 Cocoa 应用程序中是否有一个标准模式来保持 UI 和其他元素状态同步?例如,我有一个由一个类管理的主菜单和一个由另一个类管理的工具栏。某些菜单项必须反映工具栏中的当前选择,反之亦然。我打算通过让菜单项和工具栏项触发的选择器触发通知来处理这个问题。控制类将订阅这些更新 UI 以匹配选择。这是做到这一点的好方法还是我错过了在 Cocoa 中做到这一点的其他自然方法?

4

1 回答 1

0

对于应启用或禁用项目的特定情况,应留给目标(如果目标是第一响应者,则应留给隐式目标)。它应该为此使用用户界面验证

绑定是另一种很好的技术。管理 UI 的状态应该在模型或控制器中,并且 UI 应该绑定到它。(如果 UI 要绑定到模型,它应该通过控制器。)这样,您只需确保状态是最新且一致的,其他一切都会自动发生。

但是,您描述的技术是一个很好的第三种选择。当模型发生变化时,模型应该向控制器层提供通知(通过NSNotifications或委托)。控制器层监视这些,并且非常了解状态更改应该对 UI 产生什么影响,并显式配置 UI 以使其符合。

于 2012-05-10T01:58:01.530 回答