두 개의 창이 있습니다. Window A가 NIB에서로드되었습니다. 창 B는 프로그래밍 방식으로 생성됩니다.bind : toObject : withKeyPath : options : 단방향 바인딩입니까?
두 창에는 모두 NStextView가 있습니다. Window A의 textview 속성이 text
의 IB을 사용하여 바인딩됩니다. Window B의 textview의 attributedString은 -[NSObject bind:toObject:withKeyPath:options:]
메서드를 사용하는 모델의 text
속성에 바인딩됩니다.
[textview bind:@"attributedString" toObject:obj withKeyPath:@"text" options:nil];
는 여기에 이상한 일이 : 창 B의 텍스트 뷰는 실제로 obj.text
에 바인딩되어 있지만, 텍스트 뷰의 변화는 obj.text
으로 업데이트되지 않습니다. 그러나 Window A의 텍스트 뷰를 변경하면 obj.text
과 Window B의 텍스트 뷰가 적절히 업데이트됩니다.
그래서 저는 -[NSObject bind:toObject:withKeyPath:options:]
방법이 단방향 바인딩만을위한 것이라고 생각합니다. 나는 코코아 문서에서 명확한 설명을 찾을 수 없었다. 어느 누구도이 문제에 경험이 있습니까? 코드에서 양방향 바인딩을 어떻게 구현합니까?
이것은 여전히 저에게 효과가 없었습니다. 여기에 대한 답변을 찾았습니다 (내 경우) -> http://stackoverflow.com/questions/1169097/can-you-manually-implement-cocoa-bindings –
위의 링크 된 질문의 관련성에 대해 잘 모르겠습니다. . 여기에 언급 된 바인딩은 두 개의 NSControl 객체 사이에 있으며 사용자 정의 바인딩 구현은 필요하지 않습니다. – stevesliva