recessed-style NSButtonCell 개체를 사용하는 사용자 지정 범위 막대를 만드는 방법을 실험하고 있습니다. 그러나 마우스가 움직일 때 베젤을 그리는 데 문제가 있습니다. 추적 영역을 만들고 마우스가 안에있는 동안 showsBorderOnlyWhileMouseInside를 NO로 설정하고 YES가 외부로 이동할 때 YES로 설정할 수 있습니다. 그러나 NSButtonCell이 자체 추적을 수행 할 것이므로 특히 해킹처럼 느껴질 수 있습니다.사용자 지정 컨트롤에 여러 개의 recessed NSButtonCells
컨트롤의 setCell 메서드를 사용하는 경우 버튼 셀이 컨트롤의 addTrackingRect : owner : userData : assumeInside :를 호출하고 마우스를 올려 놓을 때 베젤을 그리기 위해 자체 추적을 설정합니다. 그러나 동일한 컨트롤에서 여러 단추 셀을 사용하려면 단추 셀의 setControlView 메서드를 사용하여 각 셀의 controlView를 사용자 지정 컨트롤로 설정하려고 시도하지만 셀에 setCell과 같은 추적 영역을 설정하라는 메시지는 표시하지 않습니다.
기술은 NSMatrix가이를 수행하기 때문에 가능하지만 모든 API와 포럼을 읽은 후에 컨트롤의 setCell 메소드를 사용하지 않고 NSButtonCell의 추적 동작을 시작하는 방법을 찾지 못했습니다. 이마가 책상을 때리면서 피를 흘 렸습니다. 도움을 주시면 감사하겠습니다.
감사합니다. Dirk - 전적으로 동의합니다. NSCell에 대한 설명서가 칭찬을 받으면 버튼 사용에 대해 유죄라고 생각합니다. 나는 잠시 동안 쥐 구멍을 쫓을 것이라고 생각했지만, 이것을 구현하기위한 만족스러운 해결책이없는 것 같습니다. updateTrackingAreaWithFrame : inView : 메서드를 시도했지만 트릭을 수행하지 않았습니다. Cocoa가 NSButton을 사용하여 스택을 처리 할 때 스택을 살펴보면 일련의 비공개 API가 전달되는 것을 보여주기 때문에 우리가 직접 처리하는 것처럼 보이지는 않습니다. –