6

Interface BuilderのNSArrayControllerにバインドされたNSTableViewのテーブル列があります。アレイコントローラーは、Content Arrayの場合はShared User Defaults Controllerにバインドされています。新しいオブジェクトを追加するにはHandles Content As Compound Valueを選択しなければなりませんでした。残念ながら、配列にオブジェクトがあると、テーブル行の強調表示が無効になります。add:オブジェクトは追加されますが、表の行は強調表示されていないため、行が編集できるようになると思われる場所をダブルクリックする必要があります。NSArrayControllerでオブジェクトを追加するときにNSTableView行を編集可能にする

私の目標は、アレイコントローラーを使用してテーブルビューに行を追加することです(add:)。その行が自動的に強調表示され、ユーザーに対して編集可能になります。 NSArrayControllerは用

属性:NSArrayControllerは用

enter image description here

バインディング:テーブルビューの列の

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 
関連する問題