나는 국가를 나타내는 NSObject
하위 클래스가 있다고 가정합니다.개체에 바인딩하는 코코아 NSComboBox 값
@interface CountryInfo : NSObject
@property (nonatomic, retain) NSString *countryName;
내 모델은 CountryInfo
의의 NSMutableArray
이 포함되어 있습니다. 배열을 NSComboBox
에 바인딩하고 싶습니다. 콤보 상자에는 국가 이름이 표시되고 사용자가 국가를 선택할 수 있어야합니다.
그래서, 난 그렇게처럼 내 .xib을 설정 :
CountryArrayController (NSArrayController)
ContentArray
- 바인딩 : 파일의 소유자> 모델 키 경로 : 자기 .mountel.countries
NSComboBox
내용
- 바인딩 : CountryArrayController> 컨트롤러 키 : arrangedObjects는
콘텐츠
- 값 에 바인딩 : CountryArrayController> 컨트롤러 키 : arrangedObjects> 모델 키 경로 : COUNTRYNAME
지금까지 너무 좋아. 자, 어떻게 의 값을 바인딩 할 수 있습니까? 설명서 내용 :
"An NSString or NSNumber that specifies the value of the NSComboBox."
이게 무슨 의미입니까? 내 모델의 NSString
에 이것을 바인딩 할 수 있으며 선택한 countryName
을 반영합니다. 하지만 CountyInfo
개체 자체에 바인딩하고 싶습니다! 직접 또는 어레이 컨트롤러의 선택에 바인딩을 통해 : 어떻게 이것을 설정할 수 있습니까?
NSValueTransformer를 사용해 보셨습니까? – macandyp
안녕하세요 @ macandyp, 네 NSValueTransformer 실제로 작동하고 문자열 값에 바인딩하고 코드에서 수동으로 변환하여 동일한 동작을 얻을 수 있습니다. 이 작업을 수행하기 위해 추가 코드를 작성해야한다는 것은 이상한 일이며, 객체에 바인딩 할 수는 없습니다. 감사! – TheNextman
나는 그것이 약간 이상하다고 동의한다. 콘텐츠에 바인딩하고 콘텐츠 값을 바인딩하지 않으면 클래스 설명을 호출하여 콤보 상자의 문자열을 채 웁니다. 그래도 그게 도움이되는지 나는 모르겠다. – macandyp