この投稿に投稿された2番目の回答をここに実装してみました。質問者としての希望がありますが、mouseDown
働いていない/登録していない。これが私が持っているものです。
- AppDelegate.h
- AppDelegate.m
- MouseDownTextField.h
- MouseDownTextField.m
そして、関連するコンテンツがあります:
AppDelegate.h
#import <Cocoa/Cocoa.h> #import "MouseDownTextField.h" @interface AppDelegate : NSObject <MouseDownTextFieldDelegate> { NSWindow *window; IBOutlet NSMenu *statusMenu; NSStatusItem *statusItem; NSMutableArray *selector; NSMutableArray *display; NSTimer *timer; MouseDownTextField *quoteHolder; } @property IBOutlet MouseDownTextField *quoteHolder; @end
AppDelegate.m
- (void)displayString:(NSString *)title { NSRect frame = NSMakeRect(50, 0, 200, 17); quoteHolder = [[MouseDownTextField alloc] initWithFrame:frame]; [[self quoteHolder] setDelegate:self]; [quoteHolder setStringValue:title]; [quoteHolder setTextColor:[NSColor blueColor]]; [test addSubview:quoteHolder]; [statusItem setView:test]; } -(void)mouseDownTextFieldClicked:(MouseDownTextField *)textField { NSLog(@"Clicked");}
MouseDownTextField.h
#import <Appkit/Appkit.h> @class MouseDownTextField; @protocol MouseDownTextFieldDelegate <NSTextFieldDelegate> -(void) mouseDownTextFieldClicked:(MouseDownTextField *)textField; @end @interface MouseDownTextField: NSTextField { } @property(assign) id<MouseDownTextFieldDelegate> delegate; @end
MouseDownTextField.m
#import "MouseDownTextField.h" @implementation MouseDownTextField -(void)mouseDown:(NSEvent *)event { [self.delegate mouseDownTextFieldClicked:self]; } -(void)setDelegate:(id<MouseDownTextFieldDelegate>)delegate { [super setDelegate:delegate]; } -(id)delegate { return [super delegate]; } @end
何が間違っているのか、私が何を間違っているのかについての考えは?