вы можете сделать это с помощью управления событиями кнопки, как приземление, touchupinside и touchoutside.
Когда кнопка нажимает на это время запускать таймер с задержкой 0,2 секунды и удаляет последние символы из textDocumentProxy до тех пор, пока не будет срабатывать метод touchup, и после этого вам просто нужно сделать недействительным таймер.
[self.btnDelete addTarget:self action:@selector(btnTocuhDown:) forControlEvents:UIControlEventTouchDown];
[self.btnDelete addTarget:self action:@selector(btnTouchUp:) forControlEvents:UIControlEventTouchUpInside];
[self.btnDelete addTarget:self action:@selector(btnTouchUp:) forControlEvents:UIControlEventTouchUpOutside];
- (Недействительными) btnTocuhDown
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(kpTimerMethod:) userInfo:nil repeats:YES];
self.kpTimer = timer;
__weak typeof(self)weakSelf = self;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^(void){
if (timer == self.kpTimer) {
[weakSelf.kpTimer fire];
}
});
- (Недействительными) kpTimerMethod: (NSTimer *) Таймер
if (self.btnDelete.highlighted)
{
[self deleteLastCharacter];
}
else
{
[timer invalidate];
self.kpTimer = nil;
}
- (Недействительными) deleteLastCharacter
NSString *strInput = self.textDocumentProxy.documentContextBeforeInput;
if (strInput.length > 1)
NSString *coupleOfLastCharacters = [strInput substringWithRange:NSMakeRange(strInput.length-2, 2)];
if([@"yo" caseInsensitiveCompare:coupleOfLastCharacters] == NSOrderedSame) {
[self.textDocumentProxy deleteLastCharacter];
}
}
[self.textDocumentProxy deleteLastCharacter];
- (void) btnTouchUp
[self.kpTimer invalidate];
self.kpTimer = nil;
Рекомендуется использовать все детали в ответе. Если вы просто хотите связать это скорее комментарий. –
Если есть ответ, почему я должен отвечать снова? И я не мог победить парня, так как ссылка очень подробная. –
Если вы считаете, что вопрос тот же, это дубликат. Если вы собираетесь «ответить», показывая кому-то решение elses, вы должны прокомментировать. Если у вас есть решение, которое вы предоставляете себе, вы должны написать все детали в ответе. –