2009-12-19 14 views
5

Cuando presiono el botón "+" en una fila en NSRuleEditor, se crea una nueva fila. ¿Cómo puedo influir en los criterios utilizados para esa fila?NSRuleEditor: Criterios para la nueva fila

Parece que NSRuleEditor selecciona por defecto el primer criterio secuencialmente de la lista de valores posibles. Prefiero que la nueva fila coincida con la fila donde se hizo clic en el signo "+".

Respuesta

2

pude fingir subclasificando un método privado:

- (void)_addOptionFromSlice:(id)slice ofRowType:(unsigned int)type 
{ 
    int rowIndex = [(NSRuleEditorViewSlice*)slice rowIndex]; 

    NSArray *criteriaForRow = [self criteriaForRow:rowIndex]; 
    NSArray *displayValuesForRow = [self displayValuesForRow:rowIndex]; 

    self.template = [NSArray arrayWithObjects:criteriaForRow, displayValuesForRow, nil]; 

    [super _addOptionFromSlice:slice ofRowType:type]; 
} 

- (void)insertRowAtIndex:(NSInteger)rowIndex withType:(NSRuleEditorRowType)rowType asSubrowOfRow:(NSInteger)parentRow animate:(BOOL)shouldAnimate 
{ 
    [super insertRowAtIndex:rowIndex withType:rowType asSubrowOfRow:parentRow animate:shouldAnimate]; 

    NSArray *template = self.template; 

    if (template != nil) { 
     [self setCriteria:[template objectAtIndex:0] andDisplayValues:[template objectAtIndex:1] forRowAtIndex:rowIndex]; 
    } 
} 
Cuestiones relacionadas