NSButton кнопка по умолчанию с голубоватым взглядом - PullRequest
23 голосов
/ 30 марта 2009

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

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

Ответы [ 5 ]

36 голосов
/ 31 марта 2009

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

[btn setBezelStyle:NSRoundedBezelStyle];

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

[myWindow setDefaultButtonCell:[btn cell]]; 

или

[btn setKeyEquivalent:@"\r"] 
6 голосов
/ 30 марта 2009

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

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

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

[button setNeedsDisplay:YES];

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

3 голосов
/ 03 марта 2017

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

   button.bezelstyle = NSBezelStyleRounded; // Push in Interface Builder
   button.keyEquivalent = @"\r";
   button.highlighted = YES; // this is the most important part.
1 голос
/ 30 марта 2009
[myWindow setDefaultButtonCell:[btn cell]]; // should do the trick.

Подробнее см. в документации Apple .

0 голосов
/ 08 ноября 2018

Для Swift 4.2 просто используйте

button.isHighlighted = true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...