6

인터페이스 작성기의 NSArrayController에 바인드 된 NSTableView의 테이블 열이 있습니다. 어레이 컨트롤러는 Content Array의 경우 Shared User Defaults Controller에 바인딩됩니다. 새로운 객체를 추가하려면 Handles Content As Compound Value을 선택해야했습니다. 불행하게도 배열에 객체가 add: 일 때 테이블 행을 강조 표시하지 않습니다. 개체가 추가되지만 테이블 행은 강조 표시되지 않으므로 행을 편집 할 수 있다고 생각되는 곳을 두 번 클릭해야합니다.NSArrayController와 함께 객체를 추가 할 때 NSTableView 행을 편집 가능하게합니다.

내 목표는 배열 컨트롤러를 사용하여 테이블보기에 행 add:입니다. 그 행을 자동으로 강조 표시하고 사용자가 편집 할 수있게하십시오. NSArrayController에 대한

속성 다음의 TableView의 컬럼에 대한

enter image description here

바인딩 :하여 NSArrayController에 대한

enter image description here

바인딩

enter image description here

답변

0

here이라는 해결 방법이 효과가있었습니다.

당신은 NSArrayController 하위 클래스를 자신 만의 추가 구현해야합니다 방법을

// 
// MyArrayController.h 
// 

#import <AppKit/AppKit.h> 

@interface MyArrayController : NSArrayController 

@end 

// 
// 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 
관련 문제