Objective-c block categories and subclasses
Switch branches/tags
Nothing to show
Pull request Compare This branch is 21 commits behind kgn:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
BBNSButton.h
BBNSButton.m
BBlock.h
BBlock.m
NSApplication+BBlock.h
NSApplication+BBlock.m
NSArray+BBlock.h
NSArray+BBlock.m
NSButton+BBlock.h
NSButton+BBlock.m
NSDictionary+BBlock.h
NSDictionary+BBlock.m
NSImage+BBlock.h
NSImage+BBlock.m
NSObject+BBlock.h
NSObject+BBlock.m
NSTimer+BBlock.h
NSTimer+BBlock.m
NSURL+BBlock.h
NSURL+BBlock.m
SKProductsRequest+BBlock.h
SKProductsRequest+BBlock.m
UIActionSheet+BBlock.h
UIActionSheet+BBlock.m
UIAlertView+BBlock.h
UIAlertView+BBlock.m
UIControl+BBlock.h
UIControl+BBlock.m
UIGestureRecognizer+BBlock.h
UIGestureRecognizer+BBlock.m
UIImage+BBlock.h
UIImage+BBlock.m
UITextField+BBlock.h
UITextField+BBlock.m
license
readme.md

readme.md

##BBNSButton.h

###@interface BBNSButton : NSButton

Set the callback block to be called when the mouse enters the button.

- (void)setInCallback:(BBNSButtonCallback)block;

Set the callback block to be called when the mouse exits the button.

- (void)setOutCallback:(BBNSButtonCallback)block;

Set both the *enter and exit callback blocks.

- (void)setInCallback:(BBNSButtonCallback)inBlock andOutCallback:(BBNSButtonCallback)outBlock;

##BBlock.h

###@interface BBlock : NSObject

For when you need a weak reference of an object, example: BBlockWeakObject(obj) wobj = obj;

For when you need a weak reference to self, example: BBlockWeakSelf wself = self;

Execute the block on the main thread

+ (void)dispatchOnMainThread:(void (^)())block;

Exectute the block on a background thread but in a synchronous queue

+ (void)dispatchOnSynchronousQueue:(void (^)())block;

Exectute the block on a background thread but in a synchronous queue,

This queue should only be used for writing files to disk.

+ (void)dispatchOnSynchronousFileQueue:(void (^)())block;
+ (void)dispatchOnDefaultPriorityConcurrentQueue:(void (^)())block;
+ (void)dispatchOnLowPriorityConcurrentQueue:(void (^)())block;
+ (void)dispatchOnHighPriorityConcurrentQueue:(void (^)())block;

##NSApplication+BBlock.h

###@interface NSApplication (BBlock)

- (void)beginSheet:(NSWindow*)sheet modalForWindow:(NSWindow*)modalWindow completionHandler:(void (^)(NSInteger returnCode))handler;

##NSArray+BBlock.h

###@interface NSArray(BBlock)

Enumerate each object in the array.

- (void)enumerateEachObjectUsingBlock:(void(^)(id obj))block;

Apply the block to each object in the array and return an array of resulting objects

- (NSArray *)arrayWithObjectsMappedWithBlock:(id(^)(id obj))block;

##NSButton+BBlock.h

###@interface NSButton(BBlock)

WARNING: This category is still in early development. Currently the order of calling these methods is important:

  1. setImage
  2. setAlternateBackgroundImage
  3. setBackgroundImage

Tries to mimic UIButton by exposing a method to set the background image. The image set with setImage is composited on-top of the background image.

- (void)setBackgroundImage:(NSImage *)backgroundImage;

Tries to mimic UIButton by exposing a method to set the alternate background image. The image set with setAlternateImage is composited on-top of the alternate background image. If no alternateImage is set image will be used instead.

- (void)setAlternateBackgroundImage:(NSImage *)alternateBackgroundImage;

##NSDictionary+BBlock.h

###@interface NSDictionary(BBlock)

Enumerate each key and object in the dictioanry.

- (void)enumerateEachKeyAndObjectUsingBlock:(void(^)(id key, id obj))block;
- (void)enumerateEachSortedKeyAndObjectUsingBlock:(void(^)(id key, id obj, NSUInteger idx))block;

##NSImage+BBlock.h

###@interface NSImage(BBlock)

Returns a NSImage rendered with the drawing code in the block. This method does not cache the image object.

+ (NSImage *)imageForSize:(NSSize)size withDrawingBlock:(void(^)())drawingBlock;

Returns a cached NSImage rendered with the drawing code in the block. The NSImage is cached in an NSCache with the identifier provided.

+ (NSImage *)imageWithIdentifier:(NSString *)identifier forSize:(NSSize)size andDrawingBlock:(void(^)())drawingBlock;

##NSObject+BBlock.h

###@interface NSObject(BBlock)

- (NSString *)addObserverForKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options block:(NSObjectBBlock)block;
- (void)removeObserverForToken:(NSString *)identifier;

##NSTimer+BBlock.h

###@interface NSTimer(BBlock)

+ (id)timerWithTimeInterval:(NSTimeInterval)timeInterval andBlock:(void (^)())block;
+ (id)timerRepeats:(BOOL)repeats withTimeInterval:(NSTimeInterval)timeInterval andBlock:(void (^)())block;
+ (id)scheduledTimerWithTimeInterval:(NSTimeInterval)timeInterval andBlock:(void (^)())block;
+ (id)scheduledTimerRepeats:(BOOL)repeats withTimeInterval:(NSTimeInterval)timeInterval andBlock:(void (^)())block;

##NSURL+BBlock.h

###@interface NSURL(BBlock)

Access a security scoped bookmark for sandboxed mac apps.

This method starts the access, runs the block, then stops the access.

-(void)accessSecurityScopedResourceWithBlock:(void (^)())block;

##SKProductsRequest+BBlock.h

###@interface SKProductsRequest(BBlock)

Request a StoreKit response for a set of product identifiers

+ (id)requestWithProductIdentifiers:(NSSet *)productIdentifiers andBlock:(SKProductsRequestBBlock)block;
- (id)initWithProductIdentifiers:(NSSet *)productIdentifiers andBlock:(SKProductsRequestBBlock)block;

##UIActionSheet+BBlock.h

###@interface UIActionSheet(BBlock)

- (void)setCompletionBlock:(UIActionSheetBBlock)block;
- (id)initWithTitle:(NSString *)title cancelButtonTitle:(NSString *)cancelTitle destructiveButtonTitle:(NSString *)destructiveTitle otherButtonTitle:(NSString *)otherTitle completionBlock:(UIActionSheetBBlock)block;

##UIAlertView+BBlock.h

###@interface UIAlertView(BBlock)

- (void)setCompletionBlock:(UIAlertViewBBlock)block;
- (id)initWithTitle:(NSString *)title message:(NSString *)message cancelButtonTitle:(NSString *)cancelTitle otherButtonTitle:(NSString *)otherButtonTitle completionBlock:(UIAlertViewBBlock)block;

##UIButton+BBlock.h

###@interface UIButton(BBlock)

- (void)addActionForControlEvents:(UIControlEvents)events withBlock:(BBlockUIButtonBlock)block;

##UIGestureRecognizer+BBlock.h

###@interface UISwipeGestureRecognizer(BBlock)

- (id)initWithDirection:(UISwipeGestureRecognizerDirection)direction andBlock:(UIGestureRecognizerBBlock)block;
+ (id)gestureWithDirection:(UISwipeGestureRecognizerDirection)direction andBlock:(UIGestureRecognizerBBlock)block;

###@interface UIGestureRecognizer(BBlock)

- (id)initWithBlock:(UIGestureRecognizerBBlock)block;
+ (id)gestureWithBlock:(UIGestureRecognizerBBlock)block;

##UIImage+BBlock.h

###@interface UIImage(BBlock)

Returns a UIImage rendered with the drawing code in the block. This method does not cache the image object.

+ (UIImage *)imageForSize:(CGSize)size withDrawingBlock:(void(^)())drawingBlock;
+ (UIImage *)imageForSize:(CGSize)size opaque:(BOOL)opaque withDrawingBlock:(void(^)())drawingBlock;

Returns a cached UIImage rendered with the drawing code in the block. The UIImage is cached in an NSCache with the identifier provided.

+ (UIImage *)imageWithIdentifier:(NSString *)identifier forSize:(CGSize)size andDrawingBlock:(void(^)())drawingBlock;
+ (UIImage *)imageWithIdentifier:(NSString *)identifier opaque:(BOOL)opaque forSize:(CGSize)size andDrawingBlock:(void(^)())drawingBlock;