NSPushOnPushOffButton не остается нажатым

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

Первый щелчок подсвечивает и вызывает "нажатие" кнопки, если кнопка ограничена; второй щелчок возвращает его в нормальное состояние. Эта опция называется "Push On Push Off" в инспекторе кнопок Interface Builder.

Это не работало в моей программе, поэтому я сделал SSCCE, который я включу ниже. Моя проблема в том, что кнопка не остается в нажатом состоянии, а выкидывается назад, как обычная кнопка. Я не уверен, что мне чего-то не хватает в отношении того, как должна работать эта кнопка, или я просто неправильно ее реализую (это первый раз, когда я пытался сделать пользовательский интерфейс программным способом), но другие типы кнопок, такие как как NSToggleButton работать так, если нет ничего особенного NSPushOnPushOffButton Я не вижу, где я ошибся. если бы кто-то мог предложить лучшее решение или объяснить, где я ошибся, это было бы здорово. Спасибо!

#import "AppDelegate.h"

@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    NSRect buttonFrame = NSMakeRect(0,0,200,200);
    NSButton *button = [[NSButton alloc]initWithFrame:buttonFrame];
    [self.window.contentView addSubview:button];
    [button setButtonType:NSPushOnPushOffButton];
}

@end

1 ответ

Решение

Кажется, что вы должны установить "стиль рамки", например,

[button setBezelStyle:NSRegularSquareBezelStyle];

После добавления этого к вашему примеру кода, он работал как ожидалось.

Другие вопросы по тегам