我为用户设置了一个NSRuleEditor来编辑规则来过滤数组,我可以让用户编辑规则,但我找不到一种方法来显示我为用户保存的规则,有人有什么想法吗?
我为每一行准备了规则,并从委托方法返回,当用户单击"+“按钮时,新规则就会像我预期的那样出现
#pragma mark - NSRuleEditorDelegate
- (NSInteger)ruleEditor:(NSRuleEditor *)editor numberOfChildrenForCriterion:(nullable id)criterion withRowType:(NSRuleEditorRowType)rowType {
RuleCriterion *ruleCriterion = criterion;
if (rowType == NSRuleEditorRowTypeCompound) {
if (ruleCriterion == nil) {
return self.compoundCriteria.count;
} else {
return ruleCriterion.numberOfChildren;
}
} else {
if (ruleCriterion == nil) {
return self.simpleCriteria.count;
} else {
return ruleCriterion.numberOfChildren;
}
}
}
- (id)ruleEditor:(NSRuleEditor *)editor child:(NSInteger)index forCriterion:(nullable id)criterion withRowType:(NSRuleEditorRowType)rowType {
RuleCriterion *ruleCriterion = criterion;
if (rowType == NSRuleEditorRowTypeCompound && ruleCriterion == nil) {
return self.compoundCriteria[index];
} else if (rowType == NSRuleEditorRowTypeSimple && ruleCriterion == nil) {
return self.simpleCriteria[index];
} else {
return [ruleCriterion childAtIndex:index];
}
}
- (id)ruleEditor:(NSRuleEditor *)editor displayValueForCriterion:(id)criterion inRow:(NSInteger)row {
RuleCriterion *ruleCriterion = criterion;
return ruleCriterion.displayValue;
}发布于 2019-04-15 21:36:55
使用插入行
- (void)insertRowAtIndex:(NSInteger)rowIndex withType:(NSRuleEditorRowType)rowType asSubrowOfRow:(NSInteger)parentRow animate:(BOOL)shouldAnimate;使用设置行的条件和显示值
- (void)setCriteria:(NSArray *)criteria andDisplayValues:(NSArray *)values forRowAtIndex:(NSInteger)rowIndex;https://stackoverflow.com/questions/55688723
复制相似问题