2011-03-17 5 views
1

독립형 편집기 및 NSTableColumn (코어 데이터에 NSArrayController을 통해 바인딩 됨)에 사용되는 사용자 정의 NSCell (실제로 서브 클래스는 NSTextFieldCell)이 있습니다. 사용자가 값을 변경하면 -[NSCell setObjectValue:]으로 전화하여 값을 업데이트합니다 (NSNumber). 독립 실행 형 편집기에서 작동합니다. 완료되면 수동으로 바인딩을 업데이트합니다.사용자 정의 NSCell에서 핵심 데이터 업데이트

단계 (바운드 필드를 업데이트하는) 세포가 NSTableView에있을 때 누락되었음을
[self setObjectValue:[NSNumber numberWithInt:newValue]]; 

- 업데이트 된 값이 나타 동안 사용자의 (마우스 트래킹) 편집,하지만 곧 그 끝났어로, 값 스냅 지속 된 값으로 돌아 간다.

NSTableColumn-[NSArrayController arrangedObjects]의 키에 바인딩됩니다. "commitEditing"또는 "updateBinding"에 대한 호출이 있습니까? 문서에서 NSCell 또는 NSTableView에 대한 유용한 기능을 찾을 수 없습니다.

답변

1

이 문제를 해결하기 위해 NSArrayController 하위 클래스에 -tableView:setObjectValue:forTableColumn:row:을 구현했습니다. 행 인수에서 NSManagedObject 하위 클래스의 인스턴스를 가져온 다음 ObjectValue 인수에서 새 모델을 수동으로 할당합니다. 텍스트 셀이 자동으로이 작업을 수행해야하는 이유는 아직도 모르지만 작동합니다.