스토리 보드를 사용하는 Mac 문서 기반 코어 데이터 응용 프로그램이 있습니다. 스토리 보드의 레이아웃은 다음과 같습니다.다중 스토리 보드 장면에서 NSArrayController 사용
Window Controller
Split View Controller
Table View Controller
Text View Controller
내 핵심 데이터 모델에는 제목과 내용의 두 가지 속성이 포함 된 장 엔터티가 있습니다. 테이블 뷰에서 각 장의 제목을 표시하고 싶습니다. 텍스트보기에는 선택한 장의 내용이 표시됩니다.
xib 파일을 사용 중이라면 어레이 컨트롤러를 xib 파일에 추가합니다. 내 NSPersistentDocument 하위 클래스에 액세스하려면 배열 컨트롤러를 File 's Owner에 바인딩합니다. 테이블 뷰를 배열 컨트롤러의 alignedObjects 속성에 바인드하고 배열 뷰어에 텍스트 뷰를 바인딩합니다.
하지만 스토리 보드에서는 상황이 더욱 복잡해집니다. 배열 컨트롤러를 테이블보기 컨트롤러에 추가하고 테이블보기를 배열 컨트롤러에 바인딩하고 장 제목을 테이블보기에 표시 할 수 있습니다. 그러나 어레이 컨트롤러가 다른 장면에 있기 때문에 텍스트보기 컨트롤러는 해당 어레이 컨트롤러에 바인딩 할 수 없습니다.
인터페이스 뷰어 컨트롤러와 텍스트보기 컨트롤러가 모두 인터페이스 컨트롤러에 추가하여 바인딩 할 수 있도록 인터페이스 컨트롤러에 배열 컨트롤러를 추가하려면 어떻게합니까?
그냥 속성으로 응용 프로그램의 위임에 충실하지만 keypaths는 부모 뷰에 존재합니다
내가 여기이 설명하는 예제 프로젝트를 만든이 모두 명확를 만들려면 OSX 스토리 보드에서? – steveslivaNSViewController에는 parentViewController 속성이 있습니다. 그러나 배열 컨트롤러를 분할보기 컨트롤러에 추가하고 parentViewController.arrayController.arrangedObjects의 모델 키 경로를 사용하여 테이블보기 열의 값 바인딩을 테이블보기 컨트롤러에 바인딩하면 클래스가 KVC 호환이 아니라고 말하는 충돌이 발생합니다. 키 arrayController. 배열 컨트롤러의 콘센트를 분할보기 컨트롤러 하위 클래스에 추가하고 IB에서 만든 배열 컨트롤러에 콘센트를 연결했는데 같은 오류가 발생합니다. –
나는 이것을 다시 읽고 있었다 ... 아마도 당신의 arrayController 속성을 가진 특정 서브 클래스를 반환하기 위해 parentViewController 게터를 오버라이드 했을까? 그것은 추한, 그래도. – stevesliva