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];
После добавления этого к вашему примеру кода, он работал как ожидалось.