Подтвердить что ты не робот

Кнопка NSButton по умолчанию с голубым взглядом

У меня есть диалог с 1 или более кнопками и вы хотите иметь возможность программно установить самый правый из них по умолчанию, так что, когда пользователь нажимает клавишу Enter или Return, он должен отвечать так, как если бы пользователь нажал на него.

Я использую [btn setKeyEquivalent:@"\r"], и это заставляет его работать нормально, но я хочу, чтобы кнопка имела синеватый вид, которого не происходит. Что мне нужно сделать?

4b9b3361

Ответ 1

Мне не хватало, чтобы правильно настроить стиль панели управления и почему он выглядел неправильно. Теперь я устанавливаю кнопку следующим образом:

[btn setBezelStyle:NSRoundedBezelStyle];

Затем любая из этих функций устанавливает кнопку по умолчанию:

[myWindow setDefaultButtonCell:[btn cell]]; 

или

[btn setKeyEquivalent:@"\r"] 

Ответ 2

В документации написано:

Обратите внимание, что если вы установите эквивалент ключа Return, эта кнопка станет кнопкой по умолчанию.

Таким образом, вы делаете это правильно. Вы можете попробовать это после установки эквивалента ключа:

[button setNeedsDisplay:YES];

Это заставляет кнопку перерисовывать себя.

Ответ 4

Моя настройка была настраиваемой линией, где я хотел, чтобы кнопка по умолчанию отображалась как в NSAlert. Следующая конфигурация дает мне синий по умолчанию внешний вид. Работает в 10.12.3 г. Сьерра.

   button.bezelstyle = NSBezelStyleRounded; // Push in Interface Builder
   button.keyEquivalent = @"\r";
   button.highlighted = YES; // this is the most important part.