2012-08-05 1 views
2

클래스 인스턴스 배열, 특정 클래스 인스턴스 선택을 제공하는 배열 컨트롤러 및 배열 및 선택 항목을 나타내는 NSTableView가있는 간단한 마스터 - 세부 프로젝트가 있습니다. 내 클래스는 NSString 속성을 가지고 있으며 NSTextField에 바인드하면 모든 것이 잘 작동합니다. 내가를 NSTextView의 값 경로 필드에 동일한 속성을 바인딩 할 때NSTextField에 바인딩 작업; NSTextView에 바인딩하지 않습니까?

는 그러나, 그것은 매우 비정상적으로 작동

다음 NSTableView는 항목들

  • 선택도 선택한 불구하고,를 NSTextView에 변화가 발생하지 않습니다 객체는 바운드 프로퍼티에 대해 다른 값을가집니다.

  • NSTextView에 입력 된 내용은 선택 항목의 특성으로 복사되지 않습니다.

  • 바인딩의 뚜렷한 효과는 NSTableView에서 선택을 지우는 것 (예 : 모든 항목 아래를 클릭)으로 인해 NSTextView의 내용이 사라지는 것입니다.

아이디어가 있으십니까?

+1

나는 최근에 게시 한 질문의 일부로이 질문에 이미 대답했습니다. 추가 설명이 필요하면 재 게시보다는 해당 답변에 대한 의견을 게시해야합니다. 나는 응답에서 속성이 지정된 문자열 바인딩을 사용했습니다. 값 바인딩 (일반 문자열의 경우)을 사용하려면 바인딩의 해당 옵션이 나타나기 전에 IB의 서식있는 텍스트 옵션을 선택 취소해야합니다. – rdelmar

답변

0

값 경로 바인딩은 파일 경로입니다. 값 바인딩은 문자열을위한 것입니다. 또한 데이터 (RTF/RTFD) 및 attributedString 바인딩이 있습니다.

+1

그래, valuePath를 사용해서는 안된다는 것을 이해합니다. 그러나 Bindings Inspector에는 NSTextView에 값 바인딩이 없습니다. * 데이터 바인딩이 있습니다. NSString에 바인딩 할 때 응용 프로그램이 즉시 예외를 던졌습니다. 아마도 NSTextView가 RTF 스타일 서식 데이터를 바운드 속성에 저장하려고하고 NSString이 해당 작업을 수행하지 않기 때문일 수 있습니다. 내 클래스의 바운드 속성을 NSData로 바꿨다. 이제는 제대로 작동한다. 도움 주셔서 감사합니다. –

+3

@DavidStein : 당신이'value' 바인딩에 접근하고 싶다면'NSTextView'를 위해'RichText' 옵션의 선택을 해제해야합니다. – Colas