Как сделать NSButton по умолчанию без строки заголовка в его окне

Я хочу сделать NSButton кнопкой «По умолчанию», чтобы, когда я нажимаю клавишу «Ввод», эта кнопка нажималась (т. Е. Вызывается ее действие «Нажмите»), я могу сделать это, установив его ключ, эквивалентный «\ r» или нажав клавишу «Enter» в Xib.

Но в случае, если у того же окна нет строки заголовка, то кнопка по умолчанию не работает.

Я попытался программно сделать myWindow без полей

[mywindow setStyleMask:NSBorderlessWindowMask];

все равно не помогает.

Итак, мой вопрос заключается в том, как сделать NSButton кнопкой «По умолчанию» без строки заголовка в своем окне.

Спасибо.


person user2838140    schedule 24.10.2013    source источник


Ответы (2)


Из документация:

Окно, использующее NSBorderlessWindowMask, не может стать ключевым или главным, если вы не реализуете canBecomeKeyWindow или canBecomeMainWindow для возврата YES.

Подкласс NSWindow и реализовать canBecomeKeyWindow или canBecomeMainWindow, чтобы сделать NSButton кнопкой "по умолчанию" без окна строки заголовка.

@interface PBWindow : NSWindow

@end
@implementation PBWindow

-(BOOL)canBecomeKeyWindow
{
    return YES;
}
@end  

Установите имя класса NSWindow в PBWindow:

введите здесь описание изображения

Вывод:

введите здесь описание изображения

person Parag Bafna    schedule 24.10.2013

Попробуйте программно ниже: -

NSRect myRect = NSMakeRect(0.0, 0.0, 1, 1);
NSButton *defaultButton = [[NSButton alloc] initWithFrame:myRect];

[defaultButton setKeyEquivalent:@"\r"];
[defaultButton setTarget:self];
[defaultButton setAction:@selector(yourActionMethod:)];
[[self view] addSubview:defaultButton];
[defaultButton release];
person Hussain Shabbir    schedule 24.10.2013