Objective c 如何以编程方式启动NSTextFieldCell编辑(使其成为第一响应者)

Objective c 如何以编程方式启动NSTextFieldCell编辑(使其成为第一响应者),objective-c,cocoa,nstableview,nstableviewcell,Objective C,Cocoa,Nstableview,Nstableviewcell,我有两个NSTableViews。双击tableview1时,tableview1的内容将放置在tableview2中。我想在表视图2中编辑新单元格。尝试了以下方法 -(void)editColumn:(NSInteger)column index row:(NSInteger)row index with event:(NSEvent*)事件选择:(BOOL)标志 这不会使tableview2成为第一响应者。光标不在新单元格中。我想将光标放在新单元格中,然后开始编辑单元格。请给我一些完成这项工

我有两个
NSTableView
s。双击
tableview1
时,
tableview1
的内容将放置在
tableview2
中。我想在
表视图2中编辑新单元格。
尝试了以下方法

-(void)editColumn:(NSInteger)column index row:(NSInteger)row index with event:(NSEvent*)事件选择:(BOOL)标志

这不会使
tableview2
成为第一响应者。光标不在新单元格中。我想将光标放在新单元格中,然后开始编辑单元格。请给我一些完成这项工作的建议。提前谢谢


如何将光标置于NSTableView的单元格中?

编辑开始时,
字段编辑器
出现在图片中,这就是为什么无法设置
第一响应程序的原因


实现了tableView的
textdidediting
委托。它解决了问题。

如果您使用
NSArrayController
保存表的数据,您可以覆盖
对象:

- (void)rearrangeObjects {
    [super rearrangeObjects];
    [tableView editColumn:0 row:[self selectionIndex] withEvent:nil select:YES];
}

另一个优点是,此方法似乎还可以将表向下滚动到新插入的行。

当然,在上面的示例中,
tableView
在阵列控制器的界面中声明为IBOutlet。在Interface Builder中拖动阵列控制器,将其类设置为
NSArrayController
的子类,然后按ctrl键从阵列控制器拖动到表视图以连接插座。