단일 열이있는 뷰 기반 NSTableView. 각각의 '셀'은 NSTextField, NSImageView 및 NSButton을 포함하며, 모두 테이블 셀 뷰의 objectValue의 다양한 속성에 바인딩됩니다. NSTableView의 내용은 엔티티 모드이고 관련 NSManagedObjectContext에 바인딩 된 NSArrayController의 arrangedObjects에 바인딩됩니다.뷰 기반 NSTableView의 NSButton 인수 바인딩
NSTextFields 및 NSImageView는 예상대로 작동합니다. 그러나 어떤 이유로 NSButton은 그렇지 않습니다. 항상 비활성화됩니다. 나는 그것의 인수를 objectValue의 속성과 그 대상을 File 's Owner에 바인딩했다. 실험은 문제를 일으키는 대상 바인딩이 아니라 인수 바인딩이라는 것을 나타냅니다. 인상적인 점은 인수 값이 nil이어야하므로 버튼을 비활성화 할 수 있다는 것입니다. 그리고 다른 바인딩 (NSTextFields 등)이 잘 작동하기 때문에 실제로는 불가능합니다.
문제없이 셀 기반 테이블 뷰에서 버튼 인수/대상 바인딩을 여러 번 사용했습니다. 그래서 아마도 바인딩이 작동하지 않는다는 것을 의미하는 뷰 기반 테이블 뷰의 특성이 있다고 생각했습니다. 그러나 Apple의 TableViewPlayground 샘플은 HUD 패널에서이 방법을 아무런 문제없이 사용합니다. 제 바인딩은 정확히 같은 방식으로 설정됩니다. 내가 볼 수있는 유일한 차이점은, 나의 예제는 엔티티 모드 인 반면, 애플의 예제는 클래스 - 모드 어레이 컨트롤러를 사용한다는 것이다. 하지만 그게 문제라고 믿을 수는 없습니다. (또는 적어도 심각한 약점이 될 수 있기를 바라지 않습니다.)
불행히도 내 경우에는 차이가 없습니다. – jfewtr
이 답변은 나를 위해 일했습니다. 감사합니다. jfewtr : 셀렉터를위한 계정인지 확인하십시오 ('- (void) buttonAction : (id) sender; '와 같은 메소드가 필요합니다). IB –
확인 됨 - tableView의 위임이 nil 인 경우 버튼 동작이 전송되지 않습니다. –