Se puede crear una subclase de NSTableView, anulando keyDown
así:
- (void)keyDown:(NSEvent *)theEvent
{
unichar key = [[theEvent charactersIgnoringModifiers] characterAtIndex:0];
if(key == NSDeleteCharacter)
{
[self deleteItem];
return;
}
[super keyDown:theEvent];
}
A continuación, asegúrese de que cualquier NSTableView que desea tener la funcionalidad de eliminación usa su subclase en Interface Builder en lugar de la NSTableView normal.
se puede implementar el método - (void)deleteItem
por ejemplo, así:
- (void)deleteItem
{
if ([self numberOfSelectedRows] == 0) return;
NSUInteger index = [self selectedRow];
[documentController deleteItemWithIndex:index];
}
Si tiene varias vistas que necesita rastrear por separado desde el mismo documentController, puede identificarlas usando etiquetas , es decir, ingrese una etiqueta para la vista en Interface Builder, y luego verifique el valor del valor self.tag en el método 'keyDown:'. – Frost
Lo siento, pero esta respuesta no debe marcarse como correcta. Esta solución no es la mejor práctica. – Jacque