1

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

4

2 回答 2

1

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);
}
于 2012-09-02T08:37:48.203 回答
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.

于 2012-09-02T08:39:45.903 回答