Wie erstelle ich einen blinkenden (oder blinkenden) Cursor auf dem iPhone?

Ich versuche, einen benutzerdefinierten "blinkenden Cursor" in UIKit zu erstellen. Ich habe versucht, wie unten gezeigt, zwei Funktionen zu verwenden, die sich gegenseitig aufrufen, bis der Cursor ausgeblendet wird. Aber das führt zu einer schönen unendlichen Rekursion ... aus irgendeinem Grund rufen sich die Funktionen sofort auf, nicht jede halbe Sekunde wie erwartet.

Ich habe versucht zurückzukehren, wenn der Parameter 'finished' nicht YES ist (indem ich die Zeile 'if (! Ok)' auskommentiere), aber das führt zu keiner Animation ...

Irgendeine bessere Idee? Habe ich etwas verpasst, gibt es eine viel einfachere Möglichkeit, einen "blinkenden Cursor" zu erstellen?

- (void)onBlinkIn:(NSString *)animationID finished:(BOOL)ok context:(void *)ctx {
if (cursorView.hidden) return;
//if (!ok) return;
[UIView beginAnimations:nil context:UIGraphicsGetCurrentContext()];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(onBlinkOut:finished:context:)];
cursorView.textColor = [UIColor grayColor];
[UIView commitAnimations];
}

- (void)onBlinkOut:(NSString *)animationID finished:(BOOL)ok context:(void *)ctx {
if (cursorView.hidden) return;
[UIView beginAnimations:nil context:UIGraphicsGetCurrentContext()];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(onBlinkIn:finished:context:)];
cursorView.textColor = [UIColor clearColor];
[UIView commitAnimations];
}

Antworten auf die Frage(5)

Ihre Antwort auf die Frage