Иметь объективный код помнить места, которые пользователь коснулся экрана - PullRequest
0 голосов
/ 16 июня 2019

Я работаю над созданием клавиатуры Swype для iOS, и мне было интересно, каким образом я получу объективный код c для запоминания клавиш, над которыми пользователь нависал.

%hook UIKBKeyplaneView

- (void)setState:(int)arg1 forKey:(id)arg2 {
    if (![ISController sharedInstance].isSwyping) {
        %orig;
    } else {
        %orig(2,arg2);
    }
}

%end

%hook UIKeyboardImpl

- (void)longPressAction {
    if (![ISController sharedInstance].isSwyping) {
        %orig;
    }
}

%end

%hook UIKeyboardLayoutStar
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    %orig;
    [[ISController sharedInstance] forwardMethod:self sel:_cmd touches:touches event:event];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    %orig;
    [[ISController sharedInstance] forwardMethod:self sel:_cmd touches:touches event:event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    %orig;
    [[ISController sharedInstance] forwardMethod:self sel:_cmd touches:touches event:event];
}

%end

%hook UIKeyboard
-(void)removeFromSuperview{
    [[ISController sharedInstance].suggestionsView hideAnimated:YES];
    %orig;
}

- (void)setFrame:(CGRect)frame {
    %orig;
    [ISController sharedInstance].suggestionsView.frame = CGRectMake(0, frame.origin.y-30, frame.size.width, 30);
}
%end

На данный момент у меня есть клавиатура, показывающая путь пользователя, но она не помнит, где пользователь указал пальцем. Пример: если бы пользователь поменял слово «the», он бы не отображал «th», а только конечный символ «e».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...