问题
Any idea how to set button selector at runtime (on click event) for mac (Not IOS)
I have a view controller with a button declared as outlet :
#import <Cocoa/Cocoa.h>
@interface MyView : NSView
@property (assign) IBOutlet NSButton *MyBtn;
i can access that buton with something like this :
MyView * v;
.
.
.
[v MyBtn]
i didn't find "addTarget" choice like on cocoa touch. The only choice is "setTarget(id)"
I'm using Xcode 4.4.1 for osx mountain lion
any suggestion would be appreciated. thanks
回答1:
You shall look at the NSControl class reference (from which NSButton inherits) for two separate methods setTarget:
and setAction:
.
You can do something like this in your code:
[MyBtn setTarget:self];
[MyBtn setAction:@selector(doStuff)];
take a look also at this answer.
回答2:
those two methods are what you are looking for.
- (void)setTarget:(id)target;
- (void)setSelector:(SEL)selector;
================
[myButton setSelector:@selector(myButtonClickEvent:)];
-(void) myButtonClickEvent:(id) sender{
NSLog(@"button:%@ be clicked. :)", sender);
}
来源:https://stackoverflow.com/questions/12234485/set-button-selector-on-click-event-at-runtime-cocoa-mac-project