2013-08-16 4 views
3

확인을위한 검사, 여기에 내가하고 싶은 작업은 다음과 같습니다코코아 바인딩 및 문자열 내용

  • 의 내가 항목을 가지고, 예를 들어 가정 해 봅시다 또한 NSTextField
  • hidden 값을 BOOL 변수에 바인딩한다고 가정 해 봅시다. 쉽습니다.

    • 내가 몇 마디에서 (someStringVariable == "Some String")
    • 의 패션에 체크로 hidden 속성을 바인딩 할 : 때 someStringVariable 숨겨진에있는 요소를 설정
    • 이제

    , 여기에 트위스트입니다 일부 문자열과 같습니다.

어떻게 IB 내에서 그렇게 할 수 있습니까? 그것은 가능합니까?

답변

0

당신은 이것을 someting하는 것을 의미합니까?

string1=string2 ? hidden=true : hidden=false 
+0

이 질문에 대한 답변을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남겨 둡니다. –

+0

그는 내가 원했던 것이었다 ... 나는 미안하다. 나는 여기 새로왔다. @Igor – pablopunk

2

음이 기본적으로 this question I answered의 중복입니다. 그러나 질문자 이외의 누군가가이 문제에 대해 현상금을 부과했습니다.

전적으로 IB 내에 있습니까? 번호 :

문자열 형식의 속성에 바인딩 한 다음 사용자 지정 값 변환기를 사용하여 해당 값과 같음에 따라 해당 문자열을 부울 값으로 변환 할 수 있습니다.

그러나, 문자열 형식의 특성이있는 클래스에 속성을 추가 아마 쉽게 : 정말이 속성 때문에

// Assumed to exist: 
@property (copy) NSString* someStringProperty; 

+ (NSSet*) keyPathsForValuesAffectingShouldBeHidden 
{ 
    return [NSSet setWithObject:@"someStringProperty"]; 
} 
- (BOOL) shouldBeHidden 
{ 
    return [self.someStringProperty isEqualToString:@"desired string"]; 
} 

을 오히려 모델보다 UI의 일부입니다, 당신은하실 수 있습니다 모델 클래스의 카테고리에서 정의하십시오. 카테고리 자체는 컨트롤러 코드에서 선언되고 정의됩니다.

일단 정의되면 shouldBeHidden 속성에 바인딩 할 수 있습니다.

+0

나는 이것이 받아 들여진 대답이어야한다고 생각한다. 한 가지 다른 접근법은 KVO를 사용하는 것입니다. – ozgur