6

Mam kolumnę tabeli NSTableView powiązaną z NSArrayController w konstruktorze interfejsów. Kontroler tablicowy jest powiązany z Shared User Defaults Controller dla Content Array. Musiałem wybrać Handles Content As Compound Value, aby dodawanie nowych obiektów działało. Niestety, wyłącza podświetlanie wiersza tabeli, gdy I add: obiekt do tablicy. Obiekt zostanie dodany, ale wiersz tabeli nie zostanie podświetlony i musisz kliknąć dwukrotnie w miejscu, w którym uważasz, że wiersz jest w stanie go edytować.Zmodyfikuj wiersz NSTableView podczas dodawania obiektu za pomocą NSArrayController

Moim celem jest add: wiersz do widoku tabeli za pomocą kontrolera macierzy; następnie, aby ten wiersz był automatycznie podświetlany i edytowalny dla użytkownika.

atrybutów dla NSArrayController:

enter image description here

Przypisania w NSArrayController:

enter image description here

Wiązania na kolumnie Tableview:

enter image description here

Odpowiedz

0

Obejście, które znalazłem here, było dla mnie przydatne.

Trzeba podklasy NSArrayController i zaimplementować własną dodatek: Metoda

// 
// MyArrayController.h 
// 

#import <AppKit/AppKit.h> 

@interface MyArrayController : NSArrayController 

@end 

i

// 
// 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 
Powiązane problemy