Как я могу установить внешний вид моего NSSegmentedControl, чтобы соответствовать тому из Xcode? - PullRequest
1 голос
/ 11 января 2020

В Xcode кнопки в верхнем правом углу выглядят так, в зависимости от выбранного состояния:

Xcode dark mode

Я пытаюсь скопировать и установить изображения в моем NSSegmentedControl, но я получаю только это

enter image description here

Я играл с segButtons.selectedSegmentBezelColor = [NSColor selectedControlColor]; или segButtons.highlighted = YES;, но ничего не соответствовало. Я не могу найти какое-либо другое свойство "color" в коде или в инспекторе.

Я ищу решение, которое работало бы как в темном, так и в светлом режиме. Заранее спасибо!

РЕДАКТИРОВАТЬ:

при использовании шаблона: он становится на шаг ближе! но все равно не синий (даже при попытке selectedSegmentBezelColor). Уже намного лучше, хотя enter image description here


Ответы [ 2 ]

1 голос
/ 12 января 2020

Ответ представляет собой смесь @Willeke и моего (но благодаря тому, что все приняли участие, это помогло мне не сдаваться).

Изображение должно быть помечено как template (что не Кажется невозможным из пользовательского интерфейса) и пометить стиль сегмента как автомат c (или TexturedSquare или некоторые другие опции, но не все). Некоторые опции доступны из пользовательского интерфейса, но не автоматически c ...

-(void)windowDidLoad {
    [_segmentedCtrl imageForSegment:2].template = YES;
    _segmentedCtrl.segmentStyle = NSSegmentStyleAutomatic;
}
0 голосов
/ 11 января 2020

На панели «Атрибуты» в правой части экрана, когда вы выбираете «Сегментированный элемент управления» (в раскадровке), в верхней части отображается «Выбранный оттенок». Это то, что вы ищете. Измените это на любой цвет, который вы хотите.

...