2010-12-09 4 views
1

사용자 지정 단추 모양을 만들려고합니다.사용자 지정 NSButton 및 NSButtonCell

내가 수집 한 것부터 NSButtonCell이 그림을 그리기 때문에 실제로 대신 덮어 써야합니다.

하지만 문제는 내 CustomButton 클래스가 NSImage, mIsMouseOver 등입니다. 현재 드로잉은 CustomButton 클래스에서 수행되고 있지만 셀 위로 이동하려고합니다.

질문은 어쨌든을 사용할 수 있도록 customButtonCell 클래스의 customButton 클래스에있는 이미지에 액세스 할 수 있습니까?

감사 한

답변

1

셀의 drawWithFrame:(NSRect)frame inView:(NSView *)controlView 메소드에는 뷰 속성 (예 : 이미지)에 액세스 할 수있는 NSView에 대한 참조가 포함됩니다.

+0

나는 그것이 계획과 같다고 생각한다. 나는 그 기회를 줄 것이다. 내 레이어보기 및 모든 내 사용자 지정 단추를 작동하지 않습니다 레이어를 때까지 모든 작업을 잘, 따라서 단추 대신 셀을 그리려면 모두 다시 작성해야합니다. – han

1

일반적인 방법은 NSCell에 서브 클래스의 데이터를 저장하는 것이다. 기본 셀 클래스도 - (id) 이미지 속성을 가지고 있으므로 버튼 클래스는 이미지를 쿼리 할 때 [[self cell] image]을 호출해야합니다.

실제로 NSButton을 서브 클래 싱하기 때문에 셀의 드로잉 메서드를 재정의하기 만하면됩니다. 추가 속성이 필요하면 셀에 정의하고 컨트롤을 래핑하십시오.

관련 문제