2009-02-27 2 views
2

애플은 말합니다 :Inspector> Bindings 창에서 IB의 "Controller Key"속성은 무엇을 의미합니까?

NSController 개체의 특성입니다. NSController 객체에 바인딩 할 때이 필드를 사용하여 키 경로의 첫 번째 항목을 선택합니다. 이 필드와 연관된 메뉴는 편의상 선택된 컨트롤러 개체에서 사용 가능한 속성을 표시합니다. 속성의 이름을 입력하거나 제공된 목록에서 속성의 이름을 선택할 수 있습니다.

누군가가 다른 말로 설명 할 수 있습니까?

+0

복제본 : http://stackoverflow.com/questions/595257/ –

답변

2

뷰 객체를 모델 속성에 바인딩합니다. (모식)와 같은 뭔가 : 위의 그림처럼

myTextField.value <=> myModel.textValue. 

당신은 당신이 정말로해야하지, 모델 객체의 속성에 직접보기 속성을 바인딩 할 수 있지만. Apple의 컨트롤러에서 제공하는 멋진 기능을 놓치게됩니다 (예 : NSObjectController, NSArrayController 등). 대신 당신이 좋아하는 모델에 바인딩 된 컨트롤러에보기를 결합한다 :이 설정에서

myTextField.value <=> myObjectController.selection.textValue 
    and 
myObjectController.contentObject <=> myModel 

, myObjectController.selection는 역할을 할 수 myObjectController.contentObject 및 myObjectController의 키 - 값 바인딩 호환 프록시입니다 보기와 모델 사이의 조정자. 인터페이스 빌더는 컨트롤러가 바인딩 된 모델 (예 : NSArrayControllerarrangedObjectsselectedObjects)에 대해 여러 프록시를 노출 할 수 있으므로이 분리 문제를 명시 적으로 나타냅니다. 위 예제에서 myTextField.value를 바인딩 할 때 "컨트롤러 키"필드에 'selection'을 입력하고 'Model Object Keypath'경로 필드에 "textValue"를 입력합니다.

+0

차이점은 무엇입니까? '모델 키 경로'의 '컨트롤러 키'와 'selection.textValue'에는 무엇이 있습니까? 플러스 : '컨트롤러보기'로 '컨트롤러 키'필드는 항상 비활성화됩니다. 왜 ? 감사합니다. – Colas