当我在 NSTableView 中选择 NSTextFieldCell 时,行为会有所不同,具体取决于是否选择了行。
如果选择了行,则立即选择单元格,并且光标在文本字段内闪烁
如果未选择该行,则单击后唯一的更改是该行的选择,但单元格不会进入编辑模式。
在单击 1 次后,我希望在这两种情况下都使单元格进入编辑模式。
当我在 NSTableView 中选择 NSTextFieldCell 时,行为会有所不同,具体取决于是否选择了行。
如果选择了行,则立即选择单元格,并且光标在文本字段内闪烁
如果未选择该行,则单击后唯一的更改是该行的选择,但单元格不会进入编辑模式。
在单击 1 次后,我希望在这两种情况下都使单元格进入编辑模式。
在下面实施此方法,它将编辑您的单元格:-
- (void)editColumn:(NSInteger)columnIndex row:(NSInteger)rowIndex withEvent:(NSEvent *)theEvent select:(BOOL)flag
我认为您想要的是一键编辑您的单元格。为此,您需要子类化您的 tableview 并将其 mousedown: 事件捕获为
- (void)mouseDown:(NSEvent *)theEvent
{
NSPoint globalLocation = [theEvent locationInWindow];
NSPoint localLocation = [self convertPoint:globalLocation fromView:nil];
NSInteger clickedRow = [self rowAtPoint:localLocation];
NSInteger clickedCol = [self columnAtPoint:localLocation];
[super mouseDown:theEvent];
[self editColumn:clickedCol row:clickedRow withEvent:theEvent select:YES];
}