2

NSTextfield을 NSArray 또는 NSSet/Relationship의 특정 항목 하나에만 바인딩 할 수 있습니까?NSArray 또는 NSSet/Relationship에서 하나의 특정 항목에만 'NSTextfield'를 바인딩 할 수 있습니까?

을 사용하여 NSArrayController에 바인딩 할 가능성을 확인할 수 있지만 Model Key Path은 무엇이겠습니까?

또한 하나의 NSArrayController는 많은 filterPredicates를 메서드 또는 속성으로 가질 수 있습니까?

답변

1

내가 아는 한, 세트 내의 특정 오브젝트를 일관되게 표현할 수있는 방법이 없으므로 세트의 특정 오브젝트에 바인드 할 수 없습니다. 집합에서 개체를 추출하는 유일한 방법은 anyObject입니다. 배열의 경우 또 다른 문제입니다. 그들은을 인덱싱 할 수 있으며, 바인딩 API는이 작업을 수행 할 수 있습니다 : 그것은 코드에서 수행해야합니다, 그래서 당신은 인터페이스 빌더에서 직접이 작업을 수행 할 수

// Edit: changed the code to use bindings directly instead of KVO 

[_textFild bind:NSValueBinding 
     toObject:array[indexToBindTo] 
    withKeyPath:@"firstName" 
     options:nil]; 

.

+0

"name like xxxx"와 같은 술어를 사용하여 집합의 특정 개체에 바인딩 할 수 있다고 생각했습니다. 하지만 키 경로를 모델링하는 방법. 또는 아마 방법. 어쩌면 fetchPredicate에 술어가 설정된 추가 컨트롤러 일 수도 있습니다. –

+0

개체를 직접 가져 오는 경우에는 반드시 프로그래밍 방식으로 바인딩을 추가 할 수 있지만 KVC는 키 경로의 조건자를 지원하지 않습니다 (키 경로는 조건 자와 동일하지 않습니다). – aLevelOfIndirection

+0

아마도 질문이 잘못 표현 된 것 같습니다. ControlKey에는 "filterPredicate"선택 항목이 있습니다. 그 선택은 심지어 ModelKeyPath를 요구 하는가? 그 중 하나는 단순히 혼자라고 부를 수 있습니다. Cocoa 바인딩은 "firstName"과 같은 속성 이름을 사용하는 것 같습니다. 확실히 술어를 사용하여 기본적으로 가져 오는 "firstName"에 대한 메서드 본문을 제공하는 것이 가능할 것입니다. 어쨌든 건배 –