2011-12-09 1 views
3

NSComboBox의 팝업 버튼을 숨기는 방법이 있습니까? NSComboBox 또는 NSComboBoxCell에 대한 설명서에서 아무것도 찾을 수 없습니다. NSComboBox에는 setButtonBordered: 메서드가 있지만이 메서드는 변경 단추 스타일로 변경됩니다.NSComboBox 버튼 숨기기/비활성화

내가 그것을 숨길 수 없다면, 적어도 그것을 해제 할 수 있습니까?

+0

다음 해결 방법을 게시하여 어떤 문제를 해결할 수 있습니까? 내 응용 프로그램에서는 여전히 숨길 수 있기를 바라고 다른 답변도 듣게됩니다. – paulmelnikow

답변

0

콤보 상자에 항목이없는 경우 팝업 단추를 클릭해도 아무 것도 수행되지 않습니다.

버튼을 비활성화하려는 경우 목록을 비워서 제한 사항을 해결할 수 있습니다.

클릭하면 아무런 효과가 없지만 버튼을 숨기거나 비활성화 된 것으로 그려지는 것은 아닙니다.

+0

사실, 콤보 상자의 버튼을 클릭해도 빈 목록 상자가 표시됩니다. – adib

0

나는 이것이 가능하지 않다고 생각합니다. 단추가없는 NSComboBox는 실제로 NSTextField이므로 필요없는 것으로 간주됩니다. 아마도 NSComboBoxCell을 하위 클래스로 지정하고 -drawWithFrame : inView : 또는 -drawInteriorWithFrame : inView :를 재정 의하여이 작업을 수행 할 수 있습니다.

가장 안전한 방법은 아마도 자신의 buttonHidden 속성을 추가하고 ObjC 런타임 메서드 class_getMethodImplementation을 사용하여 NSTextField에서 같은 메서드에 대한 IMP를 조회하고 단추가 숨겨 졌을 때 호출하는 것입니다. 슈퍼의 슈퍼를 효과적으로 호출 할 수 있으므로 일반 텍스트 필드를 볼 수 있습니다.