我有一个菜单,其中包含枚举中每个值的项目。绑定枚举属性的最简洁方法是什么?
菜单:
[ ] Sort by Due Date
[ ] Sort by Priority
[√] Sort by Title
枚举:
typedef enum CW_TASK_SORT_METHOD {
CWTaskSortMethodDueDate,
CWTaskSortMethodPriority,
CWTaskSortMethodTitle
} CWTaskSortMethod;
属性:
@property(readwrite, assign) CWTaskSortMethod taskSortMethod;
什么是这样使用的清洁方法是什么?我有两个想法,但都让我感到不满意。
1想法:创建每个值(sortMethodIsDueDate
,setSortMethodIsDueDate:
等)性能这些属性会打电话setTaskSortMethod:
和呼叫valueDidChange:@"sortMethodIsDueDate"
等菜单项,然后将绑定到这些属性。这看起来很多工作。
第二个想法:将每个菜单项连接到-(IBAction)updateSortMethod:(id)sender
,然后迭代菜单项并根据sender
设置值。这种方法是好的,直到taskSortMethod
由代码的不同部分改变,此时需要添加代码以保持菜单与taskSortMethod
同步。
我倾向于第一种方法,因为它具有在V & C.
更好的想法之间更好的分离?
我已经走了第二种方法。我想下一次出现这个问题时,我会创建一个类来解决它。我很惊讶没有更优雅的解决方案。 – 2009-11-05 15:58:12