0

わかりました、これは非常に単純なように思えますが、私は iOS から来ており、非常に明白な何かが欠けているに違いありません。したがって、NSButtonCell のカスタム サブクラスがあります。IB で NSButton を作成し、IB で NSButtonCell を割り当てると、問題なく動作します。

ただし、このボタンをプログラムで作成する必要があります。私はいくつかの例を見て、awakeFromNib 内に次のものを持っていますが、カスタム ボタン セルの下に通常のボタンのように見えるものを作成します (ボタンをクリックするとわかります)。

NSButton* button = [[NSButton alloc] initWithFrame:NSMakeRect(100, 100, 60, 30)];
CT_CaptureButtonCell* captureCell = [[CT_CaptureButtonCell alloc] init];
[button setCell:captureCell];
[captureCell release];
[self.view addSubview:button];

それで、私が見逃している/理解していない愚かなことは何ですか?ありがとう。

4

1 に答える 1

0

" "のドキュメントsetCell:を見ると、次のように記載されています。

討論

このメソッドは、影響を受けるコントロールに取り返しのつかない損傷を与える可能性があるため、細心の注意を払って使用してください。具体的には、このメソッドは NSControl のサブクラスの初期化子でのみ使用する必要があります。

私がこれを読んだ方法は、「 」のサブクラスの init メソッドsetCellから「 」を呼び出す必要があるということです。つまり、独自の NSButton サブクラス (InfalibleCoinageの " " など) を作成し、" " 呼び出しを init メソッドに詰め込みます。 NSButtonICButtonsetCell

この話題について話している間、「 」で達成しようとしていることの全体像は何CT_CaptureButtonCellですか? また、カスタム ボタン セルを使用せずにそれを実行できますか?

于 2012-12-09T06:13:40.020 に答える