6

Tengo una columna de tabla de NSTableView vinculada a un NSArrayController en el Creador de interfaces. El controlador de matriz está vinculado a Shared User Defaults Controller para el Content Array. Tuve que seleccionar Handles Content As Compound Value para hacer que la adición de objetos nuevos funcionara. Desafortunadamente, esto desactiva el resaltado de la fila de la tabla cuando I add: un objeto para la matriz. El objeto se agrega pero la fila de la tabla no está resaltada y debe hacer doble clic donde cree que está la fila para poder editarla.Hacer editable la fila NSTableView al agregar objetos con NSArrayController

Mi objetivo es add: una fila a la vista de tabla usando el controlador de matriz; luego, haga que esa fila se resalte y editable automáticamente para el usuario.

atributos para el NSArrayController:

enter image description here

enlaces para el el NSArrayController:

enter image description here

Fijaciones para la columna TableView:

enter image description here

Respuesta

0

La solución que encontré here funcionó para mí.

Necesitas subclase NSArrayController e implementar su propio complemento: Método

// 
// MyArrayController.h 
// 

#import <AppKit/AppKit.h> 

@interface MyArrayController : NSArrayController 

@end 

y

// 
// MyArrayController.m 
// 

#import "MyArrayController.h" 

@implementation MyArrayController 


- (void)add:(id)sender { 
    [super add:sender] ; 

    [self performSelector:@selector(selectLastObject) 
       withObject:nil 
       afterDelay:0.0] ; 
} 

- (void)selectLastObject { 
    if ([self selectsInsertedObjects]) { 
     NSArray* arrangedObjects = [self arrangedObjects] ; 
     NSInteger nObjects = [arrangedObjects count] ; 
     if (nObjects > 0) { 
      [self setSelectionIndex:nObjects-1] ; 
     } 
    } 
} 


@end 
Cuestiones relacionadas