プログラムでビューにボタンを追加しようとしていますが、もう一度クリックするまで、クリックしたときに「プッシュイン」したままにしたいと思います。私が読んだことから、これに使用するボタンはNSPushOnPushOffButton
. これについてのAppleの説明は次のとおりです。
最初のクリックでは、ボタンが境界線で囲まれている場合は両方が強調表示され、ボタンが「押し込まれ」ます。もう一度クリックすると、通常の状態に戻ります。このオプションは、Interface Builder のボタン インスペクターでは「プッシュ オン プッシュ オフ」と呼ばれます。
私のプログラムでは機能しなかったので、SSCCE を作成しました。これを以下に含めます。私の問題は、クリックしたときにボタンが留まらず、通常のボタンのように飛び出すことです。このボタンがどのように機能するかについて何かが欠けているのか、それとも単に間違って実装しているだけなのかはわかりません (プログラムで UI を実行しようとしたのはこれが初めてです)。仕事なので、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