0
我是可可新手。我有一个可可应用程序,它包含一个带有文本列的NSTableView,以及一个显示所选行文本的预览NSTextView字段。NSTableView更新/重装问题
- 我没有使用绑定
- 的委托和数据源设置正确
- 该表使用的MyObject的
现在,我可以添加或删除行的NSMutableArray中成功。我可以更改选择并在UITextView中显示相应的选定文本。
问题:只要我使用NSTextView来更改/编辑任何行/列的值,NSTableView就会干扰我的NSMutableArray并显示不正确的数据。之后,更改选择会在表格视图中显示不同的状态。请参阅附加的屏幕截图。
状态1:(显示填充的数据)
状态2:(行选择改变)
状态3:(行选择改变)
状态4:(!关于编辑值)
州5:(高亮/选择列#1)
状态6:(高光/选择行#2)
我用下面的方法来获取UPD从UITextView的ated值:
- (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];
}
}
我感谢所有帮助在查明问题的根源。
何不'rowObject.text = [theString拷贝];'? :) – Elland