ボタンの -mouseUp および -mouseDown イベントにアクセスするために、NSButton をサブクラス化し、オブジェクト内にいくつかの追加の変数を格納したいと考えています。
@interface MoveButton : NSButton{
unsigned char cmd[3];
unsigned char stop[3];
int r;
struct libusb_device_handle *devh;
}
-(void)mouseDown:(NSEvent *)theEvent;
-(void)mouseUp:(NSEvent *)theEvent;
-(void) setcommand:(char*)first:(char*)second:(char*)third (libusb_device_handle*)device_handle;
-(void) setLight: (char*) light;
@end
私のウィンドウ コントローラー内には、IBOutlet を介して Interface Builder の要素にそれぞれ接続されたサブクラスのインスタンスが多数あります。
@interface MainWindowController(){
IBOutlet MoveButton * base_cw;
IBOutlet MoveButton * base_ccw;
@end
initWithWindow 関数内で、各ボタンが初期化されます。
base_cw = [[MoveButton alloc] init];
base_ccw = [[MoveButton alloc] init];
[base_cw setcommand:"00" :"00" :"00":devh];
[base_ccw setcommand:"00" :"00" :"00":devh];
Interface builder で、各ボタンのクラス プロパティを MoveButton に変更し、正しい IBOutlet に接続しました。ただし、ボタンが実際に UI でクリックされると、使用しようとしているインスタンス変数が空であるため、UI エラーがスローされます。コード内オブジェクトを UI 要素に適切に接続していないのでしょうか、それとも完全に間違った方法で行っているのでしょうか?