Skip to content

Commit

Permalink
Un-deprecated block handler (blocks rule).
Browse files Browse the repository at this point in the history
  • Loading branch information
samvermette committed Aug 26, 2011
1 parent 6e27e4a commit de7b67e
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 6 deletions.
9 changes: 9 additions & 0 deletions README.textile
Expand Up @@ -79,6 +79,15 @@ Providing an action method ending with a semicolon, the sender object is therefo
}
</pre>

If you're a big fan of blocks, you can also respond to value changes using a block handler:

<pre>
segmentedControl.selectedSegmentChangedHandler = ^(id sender) {
SVSegmentedControl *segmentedControl = (SVSegmentedControl *)sender;
NSLog(@"segmentedControl did select index %i", segmentedControl.selectedIndex);
};
</pre>

h2. Credits

SVSegmentedControl is brought to you by "Sam Vermette":http://samvermette.com ("@samvermette":http://twitter.com/samvermette) and "contributors to the project":https://github.com/samvermette/SVSegmentedControl/contributors. If you have feature suggestions or bug reports, feel free to help out by sending pull requests or by "creating new issues":https://github.com/samvermette/SVSegmentedControl/issues/new. If you're using SVSegmentedControl in your project, proper attribution would be nice.
2 changes: 1 addition & 1 deletion SVSegmentedControl/SVSegmentedControl.h
Expand Up @@ -24,7 +24,7 @@
}

@property (nonatomic, assign) id<SVSegmentedControlDelegate> delegate DEPRECATED_ATTRIBUTE; // deprecated: use addTarget:action:forControlEvents: instead
@property (nonatomic, copy) void (^selectedSegmentChangedHandler)(id sender) DEPRECATED_ATTRIBUTE; // deprecated: use addTarget:action:forControlEvents: instead
@property (nonatomic, copy) void (^selectedSegmentChangedHandler)(id sender); // you can also use addTarget:action:forControlEvents:

@property (nonatomic, readonly) SVSegmentedThumb *thumb;
@property (nonatomic, readwrite) NSUInteger selectedIndex; // default is 0
Expand Down
9 changes: 4 additions & 5 deletions SVSegmentedControl/SVSegmentedControl.m
Expand Up @@ -35,8 +35,9 @@ - (void)dealloc {

[titlesArray release];

self.selectedSegmentChangedHandler = nil;

// avoid deprecated warnings
[self setValue:nil forKey:@"selectedSegmentChangedHandler"];
[self setValue:nil forKey:@"delegate"];

self.font = nil;
Expand Down Expand Up @@ -307,10 +308,8 @@ - (void)activate {

self.thumb.title = [titlesArray objectAtIndex:self.selectedIndex];

if([self valueForKey:@"selectedSegmentChangedHandler"]) {
void (^changedHandler)(id sender) = [self valueForKey:@"selectedSegmentChangedHandler"];
changedHandler(self);
}
if(self.selectedSegmentChangedHandler)
self.selectedSegmentChangedHandler(self);

if([self valueForKey:@"delegate"]) {
id controlDelegate = [self valueForKey:@"delegate"];
Expand Down

0 comments on commit de7b67e

Please sign in to comment.