난 코코아 초보 다. 텍스트 열이있는 NSTableView와 선택한 행의 텍스트를 보여주는 미리보기 NSTextView 필드가 포함 된 코코아 응용 프로그램이 있습니다. NSTableView 업데이트/다시로드 문제
- 내가 사용하지 않는 바인딩이 제대로 표가 성공적으로있는 NSMutableArray을 MyObject의 지금
, 내가 추가하거나 삭제할 수있는 행의 사용
문제점 : 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 copy];'가 아닌가? :) – Elland