2017-04-10 2 views
0

그래서 나는 내가 BOOL에 따라 숨겨진 원하는보기를코코아 다중 값 부울 바인딩,

나는 코코아 바인딩하여이 작업을 수행 내 문제가 지금은 서로를 원하는 것입니다

[view bind:@"hidden" toObject:self withKeyPath:@"someBOOL" options:bindingOptions]; 

BOOL도 뷰에 바인딩됩니다. 이 BOOLs 중 하나가 YES를 반환하는 경우

그래서

, 나는 view이 숨겨져 싶은

[view bind:@"hidden" toObject:self withKeyPath:@"someBOOL2" options:bindingOptions]; 

문제는 논리와 동일한 뷰 기본값이 BOOL 바인딩을 가지고, 기본적으로 보이는 것입니다 다른 하나는 YES

로 평가하지 않는 경우 중 하나 someBOOL 또는 someBOOL2이 그렇게이 프로그램 부울 바인딩은을 사용하여 만들 수있는 방법이 그래서 만약 누군가가 알고 있지 YES로 평가되는 경우 작업은, 그래서 그것은 중요하지 않습니다 논리 OR 연산자? https://developer.apple.com/library/content/documentation/Cocoa/Reference/CocoaBindingsRef/Concepts/BindingTypes.html

다중 값 바인딩

다중 값 바인딩 여러 바인딩이 하나의 바인딩을 생성 할 수 있도록 :

이것은 내가 찾을 수있는 유일한 관련 문서 및 정보입니다. 첫 번째 바인딩 인 으로 바인딩을 만들면 두 번째 바인딩이 자동으로 노출됩니다.

예를 들어 활성화 된 바인딩에 바인딩하는 경우 enabled2라는 바인딩이 노출됩니다. enabled2를 바인딩하면 객체에 enabled3이 노출됩니다. 이 모든 바인딩 값은 바인딩의 최종 값을 반환 할 때 함께 사용됩니다 ( ).

다중 값 바인딩은 항상 읽기 전용입니다.

다중 값 바인딩에는 4 가지 변형이 있습니다.

여러 값 부울 바인딩 여러 값 부울 바인딩은 개체가 편집 가능, 숨김 또는 사용 가능인지 결정하는 데 사용되는 입니다. 바인딩의 결과 값 은 논리적 AND 또는 노출 된 바인딩 값의 논리 OR을 형성하여 파생됩니다. 논리 사용 은 특정 바인딩에 따라 다릅니다.

+1

표시된 두 번째 바인딩의 경우 여전히 "숨김"이라는 이름을 사용하고 있습니다. 그것 **은 첫 바인딩을 대체합니다 **. 다중 값 바인딩을 사용하려면 두 번째 바인딩 이름으로 "hidden2"바인딩 이름을 사용해야합니다. –

+0

아 그래, 문서에있는 바로 그 부분을주의 깊게 읽지는 않았다.논리 AND/OR 사이를 전환 할 수 있는지 알고 있습니까? "사용 된 논리적 조작은 특정 바인딩에 달려 있습니다." 어떤 제어권도 가지고 있지 않은 것처럼 들린다. –

+0

"모든 숨겨진 바인딩에 대한 논리적 OR 연산이 부울 값인 YES가되면 NSView가 숨겨집니다." [NSView 숨김] (https://developer.apple.com/library/content/documentation/Cocoa/Reference/CocoaBindingsRef/BindingsText/NSView.html#//apple_ref/doc/uid/NSView-SW3). – Willeke

답변

2

두 번째 바인딩은 표시 했으므로 여전히 "숨김"이라는 이름을 사용하고 있습니다. 그것은 첫 번째 바인딩을 대체합니다. 다중 값 바인딩을 사용하려면 두 번째 바인딩 이름으로 "hidden2"바인딩 이름을 사용해야합니다.

@Willeke가 지적한 것처럼 숨겨진 바인딩은 다중 값 바인딩에 대한 논리 OR을 사용합니다. 그것이 당신을 바꿀 수 없기 때문에, 당신이 원하는 좋은 것입니다. :)