2012-04-30 1 views
2

NSTableViewNSTableView의 내 엔티티를 표시하는 일반 Mac CoreData 응용 프로그램과 NSArrayController이있는 오른쪽 패널에있는 현재 선택한 항목을 편집/표시 할 수 있습니다. NSTableView. 나는 NSComboBoxNSString 속성 (색)이 표시되는 Entity (비둘기)을 가지고있어서 사용자가 자신의 문자열을 입력하거나 드롭 다운 목록에서 이전에 선택한 색을 선택할 수 있습니다. 이는 NSComboBox의 내용 값을 Pigeons.arrangedObjects.colour에 바인딩하여 수행됩니다. 이것은 내가 원하는 것에 가까운 sooooooo이지만 비둘기에 존재하는 모든 색상의 배열 (및 집합이 아니기 때문에) 중복 값은 NSComboBox의 드롭 다운 목록에 나열됩니다. 예를 들어 한 피죤의 색으로 파란색을 입력하고 두 번째 피전으로 색을 선택한 경우 파랑 색이 목록에 두 번 표시됩니다.NSComboBox는 속성의 coredata 엔티티 바인딩에서 고유 항목을 표시합니다.

어딘가에, 어떻게 든 중복 값을 제거하기 위해 이것을 필터링 할 수 있습니까? 나는 Pigeons.arrangedObjects.colour에 바인딩되어 있고 필터링하기 위해 NSPredicate을 설정하는 두 번째 NSArrayController을 만들려고했지만 중복 값을 필터링하기 위해 NSPredicate을 파악할 수 없습니다. 색상 값에 바인딩을 사용하여 응용 프로그램이 실행 중일 때 색상이 추가되거나 삭제 된 경우 (색상 입력시 실수 일 수 있음) 드롭 다운 목록이 업데이트되어 현재 비둘기의 색상 값을 입력했습니다.

이러한 중복 값을 표시하지 않는 가장 좋은 방법은 무엇입니까?

+1

코드에 미국식'color'를 사용하는 것을 고집스럽게 거부 한 경우 : –

+0

: DI가 질문을하기 위해 색상을 '색상'으로 변경하려고 생각했지만 바보라고 결정했습니다. – DonnaLea

답변

2

나는 휴대 전화에 약간 게으른지만, 나는 "@ distinctunionofobects.someproperty"와 같은 키패드를 찾고 있다고 생각합니다 ... 아니면 Google 키패드 운영자.

+2

그래, 그거야. 더 좋은 생각이야. 나는 내 대답을 삭제했다. keypath 연산자는'@ distinctUnionOfObjects'이므로'Pigeons.arrangedObjects. @ distinctUnionOfObjects.colour'를 사용하십시오. –

+0

고마워요. '@ distinctUnionOfObjects'를 어떻게 사용하는지 정확하게 알려준 Rob에게 감사드립니다. – DonnaLea