NspopupButtoncell을 그릴 때 수동으로 강조 표시하려면 (검은 색 대신 흰색을 사용하여 그리기)?
-
18-09-2019 - |
문제
여러 셀로 구성된 맞춤형 셀이 있습니다. 그 중 하나는 NspopupButtoncell입니다.
사용자 정의 셀을 강조 표시 할 때 모든 서브 셀이 강조 표시되기를 원합니다 (일반적으로 흰색으로 바뀌면).
예를 들어 NstextCell과 같이 전화하면 setHighlighted:YES
전화하기 전에 drawWithFrame:inView
셀은 원하는대로 흰색 텍스트로 그려집니다.
이것은 NSPOPUPBUTTONCELLS에서는 작동하지 않습니다. 텍스트는 계속 검은 색으로 그려집니다.
NSPOPUPBUTTONCELL을 NSTableView 하이라이트에 제대로 삭제하기 때문에 이것이 가능해 보일 것 같습니다.
누군가 나를 고치기위한 올바른 방향으로 나를 지적 할 수 있습니까?
해결책
이 Custom+Composite NSCELL 서브 클래스를 어디에서 호스팅하고 있습니까?
-Sethighlighted : 네가 찾고있는 것이 아닙니다. 문서에서 :
기본적 으로이 방법은 아무것도하지 않습니다. NSButtonCell 클래스는이 메소드를 무시하여 NSCELLLIGHTSBYBACKGroun
일반적으로 셀의 숙주보기는 셀의 배경 스타일을 설정하고 셀은 드로우 시간에이를 사용하여 적절하게 표시합니다. 마스터 셀에서 하위 셀로 배경 스타일을 전파합니다.
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
NSRect textRect, popUpRect;
NSDivideRect(cellFrame, &textRect, &popUpRect, NSWidth(cellFrame) / 2, NSMinXEdge);
/* Draw the text cell (self) */
[super drawInteriorWithFrame: textRect inView: controlView];
/* Draw our compound popup cell - create & release every time drawn only in example */
NSPopUpButtonCell *popUpCell = [[NSPopUpButtonCell alloc] initTextCell: @"popup title"];
[popUpCell setBordered: NO];
[popUpCell setBackgroundStyle: [self backgroundStyle]];
[popUpCell drawWithFrame: popUpRect inView: controlView];
[popUpCell release];
}
NstableView 에서이 복합 셀을 호스팅하는 경우 선택한 행에 대한 올바른 배경을 얻기에 충분해야합니다.
자신의 견해로 이것을 호스팅하는 경우 추가 작업을 수행해야 할 수도 있습니다. (조언을 제공하기 전에 호스트 환경에 대한 추가 세부 정보를 제공해야합니다.)