2011-07-28 3 views
3

Xcode 사용 4.1 CollectionView를 사용하려고 할 때마다 충돌이 발생했습니다. 새 프로젝트에서NSCollectionViewItem에 바인딩하면 Xcode가 깨집니다.

  1. 의 MainMenu.nib 파일을 편집 :

    이는 내가 뭘 단계입니다.

  2. 또한 컬렉션보기 항목을 추가하는 창에 NSCollectionView을 추가하고 새보기
  3. 에서 새로운보기 NSTextField있는
  4. 같은 컨트롤을 추가 컨트롤을 선택하고 바인딩에 관리자로 전환 창유리.
  5. 컬렉션보기 항목에 무언가를 바인딩하려고 시도합니다. 드롭 다운 메뉴에서 컬렉션보기 항목을 선택하면 "내부 오류"대화 상자가 나타납니다. 이 대화 상자에서 계속 시도는

이 다른 사람을 위해 발생합니까 아니면 내가 가로 질러 간다 뭔가입니다 엑스 코드를 다시 시작할 때까지 바인딩 창을 사라지게한다? XCode 또는 코드에서 콜렉션 뷰 항목 (궁극적으로는 displayedObject 값에 바인딩하고 싶음)에 바인드 할 수 있도록하는 방법이 있습니까?

별도의 nib 파일을 사용하고 NSCollectionView의 itemPrototype으로 설정하는 사용자 지정 NSCollectionViewItem 하위 클래스를 만들려고했으나 모든 것이 잘못되었습니다.

+1

Apple에 버그를 보내십시오. – kperryua

답변

6

내가 발견에 컬렉션보기 항목보기를 분할 자신의 XIB와 연결을 다시 연결하여 콜렉션 뷰 항목 프로토 타입이 새로운 XIB를로드하면 충돌없이 인터페이스 작성기에서 바인딩을 만들 수 있습니다. 이 단계들을 따랐습니다 ...

  1. 기본 xib에서 컬렉션보기 항목보기를 삭제합니다.
  2. 새 뷰를 만들고 NSCollectionViewItem에서 상속 한 XIB를 만듭니다.
  3. 새보기에서 컬렉션보기 항목을 만듭니다.
  4. 필드를 새보기의 파일 소유자에 바인드하십시오.
  5. 컬렉션보기 xib로 돌아가서 컬렉션보기 항목의 속성을 업데이트하여 새 xib의 저장소 이름을로드합니다.

프로그래밍 방식으로 처리하는 것보다 빠르지는 모르지만 코드를 작성하지 않고 바인딩을 관리 할 수는 있습니다. 나는 지금이 방법으로 작동하는 몇 가지 애플 리케이션을 가지고있다.

+0

몇 가지 샘플 코드를 제공해 주시겠습니까? 나는 이것을 이해하지 못한다. ( – GarethPrice

+2

나는 완전한 예를 여기에 썼다 : http://comelearncocoawea.blogspot.com/2011/08/nscollectionview-redux.html – iain

+0

훌륭해, 고마워. – iain

0

그래, 나는 유일한 해결 방법은 프로그램 적으로 결합하는 것입니다 3.

에도 인터페이스 빌더에도이 버그를 확인할 수 있습니다

[textField bind:@"value" toObject:collectionViewItem withKeyPath:@"representedObject.foo" options:nil]; 
1

나는 임시 작업 주위 발견했습니다

가 "MAINMENU" "코코아 콩 이름"설정 "컬렉션보기 매물"및 → "보기 컨트롤러"설정 (가) "속성을 속성"아래를 선택합니다.

이렇게하면 충돌이 발생하지 않고 바인딩을 설정할 수 있습니다.앱을 만들 때 "Nib Name"설정을 지우십시오.

관련 문제