再生/一時停止ボタンを含むカスタム ビューを作成しようとしています。これらをいくつでも NSWindow にアタッチします。まず、独自の NSView を作成し、さまざまな部分を描画してから、再生/一時停止ボタンを NSView としてサブクラス化しました (ベイビー ステップ)。
ボタンが NSView ではなく NSButtonCell を拡張する必要があると判断するまで、これはすべてうまくいきました。以下 (TimeSlipView.m から) は惨めに失敗し、その理由がわかりません。
playPauseButton = [[TimeSlipViewButton alloc] init];
[playPauseButton setButtonType:NSMomentaryPushInButton];
[self addSubview:playPauseButton];
コンパイル エラーが発生し、最後の行に次の警告が表示されます。
非常に基本的なことを誤解しているように感じます。何らかの理由addSubview:
で、NSView 内から NSButtonCell を渡すことはできません。
TimeSlipView.h
#import <Cocoa/Cocoa.h>
#import "TimeSlipViewButton.h"
@interface TimeSlipView : NSView {
TimeSlipViewButton *playPauseButton;
NSView *timerText;
NSView *clientText;
NSView *projectText;
NSView *taskText;
}
@end
TimeSlipViewButton.h
#import <Cocoa/Cocoa.h>
@interface TimeSlipViewButton : NSButtonCell
@end