문서 기반 Core Data 앱이 있습니다. 내 주요 코어 데이터 엔티티에는 여러 문자열 필드가 있으며 대부분은 NSTextField에 바인딩되지만 NSTextView에 바인딩됩니다.하위 뷰 및 여러 NIB가있는 코어 데이터 바인딩
Hillegass 책에서 설명한대로보기 전환 (다중보기 컨트롤러 사용) 기술을 사용하고 있습니다. 모든 하위 뷰는 managedObjectContext 필드가있는 NSViewController의 하위 클래스 인 ManagedViewController에 의해 제어됩니다.
내 하위보기가 별도의 nib 파일에 있습니다. 웬일인지, 그 펜촉에 설정 한 바인딩은 작동하지 않습니다. 그러나 위젯과 바인딩을 메인 펜촉 파일에서 똑같은 방법으로 설정하면 정상적으로 작동합니다.
참조 이미지 : 메인 nib 파일에서
Screenshot http://img180.imageshack.us/img180/3391/screenshot.gif
, 나는 누구의 managedObjectContext를 파일의 소유자의 MOC (파일의 소유자가 MyDocument입니다)에 바인딩 된 트리 컨트롤러를 가지고있다. NSTextField의 값 (예, 값 - 서식있는 텍스트가 아닙니다)은 treeController.selection.content (여기서 content는 엔터티의 문자열 속성입니다)에 바인딩됩니다. 이것은 잘 작동합니다.
두 번째 nib 파일에서 managedObjectContext가 파일 소유자의 mOC (파일 소유자는 ManagedViewController)에 바인딩 된 다른 트리 컨트롤러가 있습니다. NSTextField의 값은 위와 같은 방법으로 바인딩됩니다.
내 코드에서 두 managedObjectContext가 동일한 개체를 참조하는지 테스트했습니다. 그들은하고, 그것은 아니에요.
오류가 발생하지 않습니다. 값이 서브 뷰의 NSTextViews와 절대 바인딩되지 않는다는 것입니다. 그들은 항상 제로입니다.
또한 NSTextFields도 시도했습니다. 동일한 문제입니다.
코어 데이터 바인딩을 하위 뷰 및 여러 NIB와 잘 연동시키는 방법에 대한 아이디어가 있으십니까?
제안 해 주셔서 감사합니다.하지만 조금 (n00bishly) 혼란 스럽습니다. 내 문서는 트리 컨트롤러에 현재 선택 항목을 알릴 수있는 방법은 무엇입니까? 이해할 수 있듯이 선택 영역은 트리 컨트롤러와 개요보기에서만 존재합니다. –
문서에 속성을 추가하여 이러한 인덱스 경로를 유지할 수 있습니다. 기억하십시오, 당신은 하나의 나무 controll * er *을 가지고 있지 않습니다, 당신은 두 개의 tree controll * ers *를 가지고 있습니다, 각각은 선택된 것에 대한 자신 만의 아이디어를 가지고 있습니다. 그렇기 때문에 두 가지 정보를 모두 공유 할 수있는 공통된 대상을 제공해야합니다. 당신의 문서는 제가 그 역할에 지정할 객체입니다. –
피터 - 감사합니다. 결국 작업이 끝났습니다. 나는 당신이 말한 것을 오해 한 것 같았고, 그것이 여전히 효과가 없었던 이유이지만, 또 다른 버그 (또는 세 가지)는 책임이 있습니다. –