Skip to content

Commit dc0f989

Browse files
Add support some action-target methods.
1 parent 45073bf commit dc0f989

15 files changed

Lines changed: 156 additions & 15 deletions

File tree

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//
2+
// UIGestureRecognizer+JavaScriptBridge.h
3+
// JavaScriptBridge
4+
//
5+
// Created by kishikawa katsumi on 2014/01/31.
6+
// Copyright (c) 2014 kishikawa katsumi. All rights reserved.
7+
//
8+
9+
#import <UIKit/UIKit.h>
10+
11+
@interface UIGestureRecognizer (JavaScriptBridge)
12+
13+
@end
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
//
2+
// UIGestureRecognizer+JavaScriptBridge.m
3+
// JavaScriptBridge
4+
//
5+
// Created by kishikawa katsumi on 2014/01/31.
6+
// Copyright (c) 2014 kishikawa katsumi. All rights reserved.
7+
//
8+
9+
#import "UIGestureRecognizer+JavaScriptBridge.h"
10+
11+
@implementation UIGestureRecognizer (JavaScriptBridge)
12+
13+
- (id)__initWithTarget:(id)target action:(NSString *)action
14+
{
15+
return [self initWithTarget:target action:NSSelectorFromString(action)];
16+
}
17+
18+
- (void)__addTarget:(id)target action:(NSString *)action
19+
{
20+
[self addTarget:target action:NSSelectorFromString(action)];
21+
}
22+
23+
- (void)__removeTarget:(id)target action:(NSString *)action
24+
{
25+
[self removeTarget:target action:NSSelectorFromString(action)];
26+
}
27+
28+
@end
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//
2+
// UIMenuItem+JavaScriptBridge.h
3+
// JavaScriptBridge
4+
//
5+
// Created by kishikawa katsumi on 2014/01/31.
6+
// Copyright (c) 2014 kishikawa katsumi. All rights reserved.
7+
//
8+
9+
#import <UIKit/UIKit.h>
10+
11+
@interface UIMenuItem (JavaScriptBridge)
12+
13+
@end
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//
2+
// UIMenuItem+JavaScriptBridge.m
3+
// JavaScriptBridge
4+
//
5+
// Created by kishikawa katsumi on 2014/01/31.
6+
// Copyright (c) 2014 kishikawa katsumi. All rights reserved.
7+
//
8+
9+
#import "UIMenuItem+JavaScriptBridge.h"
10+
11+
@implementation UIMenuItem (JavaScriptBridge)
12+
13+
- (id)__initWithTitle:(NSString *)title action:(NSString *)action
14+
{
15+
return [self initWithTitle:title action:NSSelectorFromString(action)];
16+
}
17+
18+
@end

Classes/Private/UIView+JavaScriptBridge.m

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,18 @@
1111

1212
@implementation UIView (JavaScriptBridge)
1313

14+
+ (void)__setAnimationWillStartSelector:(NSString *)selector
15+
{
16+
[self setAnimationWillStartSelector:NSSelectorFromString(selector)];
17+
}
18+
19+
+ (void)__setAnimationDidStopSelector:(NSString *)selector
20+
{
21+
[self setAnimationDidStopSelector:NSSelectorFromString(selector)];
22+
}
23+
24+
#pragma mark -
25+
1426
+ (void)__performWithoutAnimation:(JSValue *)function
1527
{
1628
JSContext *context = [JSContext currentContext];

Classes/Private/UIViewController+JavaScriptBridge.m

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,18 @@
1111

1212
@implementation UIViewController (JavaScriptBridge)
1313

14+
- (BOOL)__canPerformUnwindSegueAction:(NSString *)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender
15+
{
16+
return [self canPerformUnwindSegueAction:NSSelectorFromString(action) fromViewController:fromViewController withSender:sender];
17+
}
18+
19+
- (UIViewController *)__viewControllerForUnwindSegueAction:(NSString *)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender
20+
{
21+
return [self viewControllerForUnwindSegueAction:NSSelectorFromString(action) fromViewController:fromViewController withSender:sender];
22+
}
23+
24+
#pragma mark -
25+
1426
- (void)__presentViewController:(UIViewController *)viewControllerToPresent
1527
animated:(BOOL)flag
1628
completion:(JSValue *)completionFunction

Classes/iOS/FrameworkSupport/UIKit/JSBUIControl.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,15 @@
2626
- (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event;
2727
- (void)cancelTrackingWithEvent:(UIEvent *)event;
2828
JSExportAs(addTargetActionForControlEvents,
29-
- (void)__addTarget:(id)target action:(NSString *)action forControlEvents:(UIControlEvents)controlEvents
30-
);
29+
- (void)__addTarget:(id)target action:(NSString *)action forControlEvents:(UIControlEvents)controlEvents);
3130
JSExportAs(removeTargetActionForControlEvents,
32-
- (void)__removeTarget:(id)target action:(NSString *)action forControlEvents:(UIControlEvents)controlEvents
33-
);
31+
- (void)__removeTarget:(id)target action:(NSString *)action forControlEvents:(UIControlEvents)controlEvents);
3432
- (void)removeTarget:(id)target action:(NSString *)action forControlEvents:(UIControlEvents)controlEvents;
3533
- (NSSet *)allTargets;
3634
- (UIControlEvents)allControlEvents;
3735
- (NSArray *)actionsForTarget:(id)target forControlEvent:(UIControlEvents)controlEvent;
3836
JSExportAs(sendActionToForEvent,
39-
- (void)__sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event
40-
);
37+
- (void)__sendAction:(NSString *)action to:(id)target forEvent:(UIEvent *)event);
4138
- (void)sendActionsForControlEvents:(UIControlEvents)controlEvents;
4239

4340
#pragma clang diagnostic pop

Classes/iOS/FrameworkSupport/UIKit/JSBUIGestureRecognizer.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,12 @@
2222
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
2323
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
2424
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;
25-
- (id)initWithTarget:(id)target action:(SEL)action;
26-
- (void)addTarget:(id)target action:(SEL)action;
27-
- (void)removeTarget:(id)target action:(SEL)action;
25+
JSExportAs(initWithTargetAction,
26+
- (id)__initWithTarget:(id)target action:(NSString *)action);
27+
JSExportAs(addTargetAction,
28+
- (void)__addTarget:(id)target action:(NSString *)action);
29+
JSExportAs(removeTargetAction,
30+
- (void)__removeTarget:(id)target action:(NSString *)action);
2831
- (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer;
2932
- (CGPoint)locationInView:(UIView *)view;
3033
- (NSUInteger)numberOfTouches;

Classes/iOS/FrameworkSupport/UIKit/JSBUIMenuItem.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
@property (nonatomic) SEL action;
2020
@property (nonatomic, getter = isMenuVisible) BOOL menuVisible;
2121

22-
- (id)initWithTitle:(NSString *)title action:(SEL)action;
22+
JSExportAs(initWithTitleEvent,
23+
- (id)__initWithTitle:(NSString *)title action:(NSString *)action);
2324

2425
#pragma clang diagnostic pop
2526

Classes/iOS/FrameworkSupport/UIKit/JSBUIView.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,10 @@
4949
+ (void)beginAnimations:(NSString *)animationID context:(void *)context;
5050
+ (void)commitAnimations;
5151
+ (void)setAnimationDelegate:(id)delegate;
52-
+ (void)setAnimationWillStartSelector:(SEL)selector;
53-
+ (void)setAnimationDidStopSelector:(SEL)selector;
52+
JSExportAs(setAnimationWillStartSelector,
53+
+ (void)__setAnimationWillStartSelector:(NSString *)selector);
54+
JSExportAs(setAnimationDidStopSelector,
55+
+ (void)__setAnimationDidStopSelector:(NSString *)selector);
5456
+ (void)setAnimationDuration:(NSTimeInterval)duration;
5557
+ (void)setAnimationDelay:(NSTimeInterval)delay;
5658
+ (void)setAnimationStartDate:(NSDate *)startDate;

0 commit comments

Comments
 (0)