2016-11-14 13 views
1

Я пытаюсь создать NSToolbarItem, содержащий NSButton, который соответствует ширине кнопки. Однако, когда я устанавливаю максимальную ширину элемента панели инструментов на высокое значение (например, 300), и на панели инструментов достаточно места, кнопка всегда будет расширяться до 300 точек.NSToolbarItem: кнопка размера для установки/установки приоритета обнимания содержимого

Как я могу позволить кнопке расти, например? 300 баллов, но только, если это необходимо для размещения его содержимого (т. Е. Обнимать его содержимое)? Кажется, что установка кнопок contentHuggingPriority игнорируется, если она находится внутри NSToolbar.

+0

Является ли текст кнопки всегда одинаковым? – Willeke

+0

Нет - тогда я мог бы просто исправить ширину кнопки. – MrMage

+0

Не можете ли вы настроить maxSize после изменения названия? – Willeke

ответ

-1

Вы можете выполнить то, что вы хотите, изменив настройку границы кнопки как «Выкл.» И установите параметр масштабирования изображения пропорционально «Вниз».

Вот несколько примеров. Вы можете увидеть различные превью результатов с изменениями настроек.

enter image description here

enter image description here

enter image description here

+0

Спасибо, но это не то, о чем я прошу. Моя кнопка не содержит никаких изображений, но я хочу, чтобы она автоматически уменьшалась, когда она содержит текст. – MrMage

+0

Несмотря на то, что содержимое не может визуально занимать столько места, элемент панели инструментов по-прежнему будет занимать это пространство и не позволяет занимать его. –

0

Я сделал это для NSTextField, но он также должен работать на NSButton. Вы должны установить это после того, изменяя stringValue (установить minSize и maxSize до низкого значения в Xcode):

if let font = tf.font { 
    let size = tf.stringValue.size(withAttributes: [NSAttributedStringKey.font: font]) 
    toolBarItem.minSize.width = size.width // maybe + x 
} 

Может быть, вы должны добавить некоторые пиксели size.width, так что кнопка будет достаточно большой.

 Смежные вопросы

  • Нет связанных вопросов^_^