NspopupButtoncell을 그릴 때 수동으로 강조 표시하려면 (검은 색 대신 흰색을 사용하여 그리기)?

StackOverflow https://stackoverflow.com/questions/1162414

문제

여러 셀로 구성된 맞춤형 셀이 있습니다. 그 중 하나는 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 에서이 복합 셀을 호스팅하는 경우 선택한 행에 대한 올바른 배경을 얻기에 충분해야합니다.

자신의 견해로 이것을 호스팅하는 경우 추가 작업을 수행해야 할 수도 있습니다. (조언을 제공하기 전에 호스트 환경에 대한 추가 세부 정보를 제공해야합니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top