applidium/Vim — Issue #9: 2 finger tap is easier than blacksplash for input esc
Author: pinxue
Created: 2012-01-25 14:00:42+00:00
State: open

To input blacksplash in iOS, we need switch to symbol keyboard by two click, not a good idea. Personally, I prefer to using two finger tap gesture as an alternative.

I have forked it as https://github.com/pinxue/Vim .

git diff is:

diff --git a/src/gui_ios.m b/src/gui_ios.m
index ecd1f11..10b5e7a 100644
--- a/src/gui_ios.m
+++ b/src/gui_ios.m
@@ -128,7 +128,13 @@ enum blink_state {
- (void)viewDidLoad {
[super viewDidLoad];

+ UITapGestureRecognizer * tap2fGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(click2f:)];
+ tap2fGestureRecognizer.numberOfTouchesRequired = 2;
+ [_textView addGestureRecognizer:tap2fGestureRecognizer];
+ [tap2fGestureRecognizer release];
+
UITapGestureRecognizer * tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(click:)];
+ tapGestureRecognizer.numberOfTouchesRequired = 1;
[_textView addGestureRecognizer:tapGestureRecognizer];
[tapGestureRecognizer release];

@@ -199,6 +205,13 @@ enum blink_state {
gui_send_mouse_event(MOUSE_LEFT, clickLocation.x, clickLocation.y, 1, 0);
}

+- (void)click2f:(UITapGestureRecognizer *)sender {
+ [self becomeFirstResponder];
+ // send ESC
+ char escapeString[] = {ESC, 0};
+ [self insertText:[NSString stringWithUTF8String:escapeString]];
+}
+
- (void)pan:(UIPanGestureRecognizer *)sender {
CGPoint clickLocation = [sender locationInView:sender.view];