我是可可新手。我有一个可可应用程序,其中包含一个带有文本列的 NSTableView,以及一个显示所选行文本的预览 NSTextView 字段。
- 我没有使用绑定
- 委托和数据源已正确设置
- 该表使用 MyObject 的 NSMutableArray
现在,我可以成功添加或删除行。我可以更改选择,相应的选定文本会出现在 UITextView 中。
问题:一旦我使用 NSTextView 更改/编辑任何行/列的值,NSTableView 就会干扰我的 NSMutableArray 并显示不正确的数据。之后,更改选择会在表格视图中显示不同的状态。请参阅随附的屏幕截图。
状态 1:(显示填充数据)
状态 2:(行选择已更改)
状态 3:(行选择已更改)
状态 4:(即将编辑值!)
状态 5:(突出显示/选择第 1 行)
状态 6:(突出显示/选择第 2 行)
我正在使用以下方法从 UITextView 获取更新的值:
- (void)textDidEndEditing:(NSNotification *)notification {
id sender = [notification object];
NSString * theString = [sender string];
NSInteger selectedRow = [_myTableView selectedRow];
if (selectedRow < 0 || selectedRow > [_myArray count] - 1) return;
MyObject *rowObject = [_myArray objectAtIndex:selectedRow];
rowObject.text = theString;
// Update table
[_myTableView reloadData];
}
我试图为 NSTableView 中明显的重新加载错误实现一种解决方法,但这对我不起作用:
- (void)tableViewSelectionIsChanging:(NSNotification *)notification {
if ([notification object] == _myTableView) {
[_myTableView noteNumberOfRowsChanged];
}
}
感谢您在确定问题根源方面的任何帮助。