Скрыть / отключить кнопку NSComboBox - PullRequest
3 голосов
/ 09 декабря 2011

Есть ли способ скрыть всплывающую кнопку NSComboBox?Я не могу найти ничего в документации для NSComboBox или NSComboBoxCell.В NSComboBox есть метод setButtonBordered:, но он просто меняется на другой стиль кнопки.

Если я не могу его скрыть, могу ли я хотя бы отключить его?

Ответы [ 2 ]

0 голосов
/ 17 октября 2012

Я не думаю, что это возможно.NSComboBox без кнопки фактически является NSTextField, поэтому я думаю, что это было сочтено ненужным.Возможно, вы могли бы сделать это, создав подклассы NSComboBoxCell и переопределив -drawWithFrame: inView: или -drawInteriorWithFrame: inView:.

Самый безопасный способ, вероятно, состоит в добавлении собственного свойства buttonHidden и использовании метода времени выполнения ObjC class_getMethodImplementation для поискаIMP для того же метода в NSTextField и просто вызвать его, когда кнопка скрыта.Вы бы на самом деле называли super's super, поэтому у вас был бы обычный вид текстового поля.

0 голосов
/ 21 января 2012

Если в поле со списком нет элементов, нажатие всплывающей кнопки ничего не делает.

Может быть, вы можете обойти ограничение, очистив список, если хотите отключить кнопку.

Нажатие не действует, но кнопка не скрывается и не отображается как отключенная.

...