如何确定在NSPopUpButton菜单中选择NSRuleEditor的哪个标准?内部ruleEditorRowsDidChange(_:)
我可以跟踪每一行的标准并手动处理更改,但似乎应该有更简单的方法。
我尝试在规则编辑器的委托中返回一个NSMenuItem,而不是一个String,用于该规范的value;然后在菜单项上设置目标和操作属性。这允许我在规则编辑器中选择菜单项(条件)时调用一个方法。这也意味着我知道是哪个标准触发了操作方法,因为每个菜单项的目标都是条件本身。但是,在菜单项上设置目标和操作属性将覆盖规则编辑器在菜单项上设置的私有目标和操作值。这意味着在规则编辑器中选择了一个条件之后,我设置的目标/操作就会被触发,但是选择的更改不会反映在规则编辑器中。
我的当前解决方案是返回一个NSPopUpButton作为标准的displayValue (因为它继承自NSView),并手动管理按钮的项和目标/操作。它工作得很好,但它让单一的标准本身管理多个值,而不是依赖规则编辑器的委托,似乎有点破坏了规则编辑器的设计。
我是不是走错路了?在规则编辑器中选择标准时,是否有一种更简单的方法来运行特定于标准的代码?
谢谢!
发布于 2016-12-19 02:49:10
设置菜单项的操作,并在操作调用规则编辑器的- (void)setCriteria:(NSArray *)criteria andDisplayValues:(NSArray *)values forRowAtIndex:(NSInteger)rowIndex内刷新行。您可以使用- (NSInteger)rowForDisplayValue:(id)displayValue获取行。
https://stackoverflow.com/questions/41178724
复制相似问题