문제

나는 nsimagecell, nstextfieldcells 및 nspopupbuttoncell을 사용하여 NSCell의 사용자 정의 서브 클래스를 만들었습니다.

다음을 사용하여 팝업 셀을 초기화하고 있습니다.

    myPopUpCell = [[NSPopUpButtonCell alloc] init];
    [myPopUpCell setBordered:NO];
    [myPopUpCell setAutoenablesItems:NO];
    [myPopUpCell addItemsWithTitles:[NSArray arrayWithObjects:@"Item1", @"Item2", @"Item3"]];

그리고 그것을 그렸습니다 drawInteriorWithFrame:inView:

내 앱을 실행하는 동안 팝업 셀을 클릭 할 때 셀이 팝업되지 않는다는 점을 제외하고는 모든 것이 잘 작동하는 것 같습니다. 무엇이 잘못되었는지에 대한 제안이 있습니까?

도움이 되었습니까?

해결책

팝업 버튼 셀을 끌어냅니다 drawInteriorWithFrame:inView: 바로 그렇게 할 것입니다. 그것을 그려보십시오. 그러나 다른 것은 없습니다. 클릭 이벤트 처리는 그리기와 관련이 없으므로 마우스 이벤트를 해석하기 위해 사용자 정의 셀에서 작업을 수행해야하며 팝업 버튼에 사용하는 프레임 내부에 있으면 전달해야합니다. 버튼 셀에. 마우스 추적 아래에서 NSCELL 문서에 나열된 메소드를 서브 클래싱으로 시작합니다. –trackMouse:inRect:ofView:untilMouseUp:, 그리고 버튼 셀을 올바르게 만드는 데 필요한 것이 무엇인지 파악할 수 있어야합니다.

당신이하고있는 일에 따라 실제로 제목 문자열을 직접 그리는 것이 더 쉽고 nsmenu 's를 사용하는 것이 더 쉽다는 것을 알 수 있습니다. +popUpContextMenu:withEvent:forView:.

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