我有一个NSTableView的表列绑定到Interface Builder中的NSArrayController。对于Shared User Defaults Controller
,数组控制器绑定到Content Array
。我必须选择Handles Content As Compound Value
才能添加新对象。不幸的是,当我add:
数组的对象时,这会禁用表行的突出显示。添加了对象,但表格行未突出显示,您必须双击您认为该行能够编辑它的位置。
我的目标是使用数组控制器add:
到表视图的一行;然后,让该行自动突出显示并可供用户编辑。
NSArrayController的属性:
NSArrayController的绑定:
TableView列的绑定:
答案 0 :(得分:0)
我发现here的解决方法对我有用。
您需要继承NSArrayController并实现自己的add:方法
//
// 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