2010-01-11 2 views
0

이 질문이 하나와 유사한 : 그 질문에서 언급 한 바와 같이 How do I use an NSFormatter subclass with an NSPopUpButtonNSFormatter를 NSPopUpButton과 함께 사용할 수 있습니까?

, 그것은 작동하지 않는 NSPopUpButton의 셀에 사용되는 '포맷'처럼 보인다. 이것이 예상되는지 또는 NSPopUpButton의 포맷터를 설정하는 것이 실제로 필요한지 궁금합니다.

바로 지금, "Content Objects"가 NSNray의 NSArray 인 NSArrayController의 arrangedObjects에 "Content Objects"가 바인딩 된 NSPopUpButton이 있습니다. NSPopUpButton 셀의 포맷터를 NSNumber를 통화 형식으로 포맷하는 간단한 NSNumberFormatter로 설정하면 작동하지 않습니다. 팝업 메뉴는 포맷되지 않은 숫자를 표시합니다.

NSPopUpButton의 팝업 메뉴에 표시되는 문자열의 형식을 지정하는 방법이 궁금합니다. 나는 이것이 상당히 솔직하게되어야한다고 생각한다; 값 변압기 또는 디스플레이 경로에 대한 특수 값을 사용해야하는 것은 과도한 것처럼 보이므로 더 쉬워야합니다. 사전에

감사합니다.

답변

0

셀이 포맷터를 따르지 않으면 -cost와 반대되는 -formattedCost와 같은 대체 속성을 제공 할 수 있습니다. 팝업 버튼의 메뉴 항목은 사용자가 편집 할 수 없기 때문에 아무 것도 필요하지 않습니다.

-formattedCost 속성은 공유 NSNumberFormatter 인스턴스를 사용하고 올바르게 형식이 지정된 -cost 문자열을 반환합니다.

- (NSString *)formattedCost 
{ 
    return [mySharedCurrencyFormatter stringFromNumber:[self cost]]; 
} 

"formattedCost"속성은 표시하기 위해 바인딩하는 속성입니다. 추가주의 사항 : "formattedCost"키를 "비용"키에 종속적 인 것으로 등록하려고합니다. 그렇게하면 비용이 변경되면 팝업이 업데이트됩니다 ('formattedCost'도 변경되기 때문에).

+0

감사합니다. Joshua. 귀하의 제안은 분명히 효과가 있지만, 이것을 달성하기위한보다 쉬운 방법이 있어야한다고 생각합니다. 귀하의 제안으로 NSPopUpbutton의 내용을 NSNumbers의 간단한 NSArray가 될 수 없게되었습니다. 언급했듯이, 여러분의 제안에 대해 걱정할 몇 가지 추가주의 사항이 있습니다. 나는 피하고 싶고 매우 간단하고 쉬운 것을 가지고 있습니다. NSPopUpButton이 포맷터를 존중하지 않는다는 것이 매우 이상한 일입니다. –

관련 문제