/ / Greifen Sie auf UIView / UIWindow zu, um das kleine blaue Feld für die automatische Korrektur zu erhalten - ios, cocoa-touch, uikit

Erhalten Sie Zugriff auf UIView / UIWindow für die kleine blaue Box für automatische Korrekturen - ios, cocoa-touch, uikit

Es scheint, als ob Sie unter iOS auf die meisten Ansichten / Fenster zugreifen können, aber ich habe nicht viel Erfahrung. Ich hoffe also, dass jemand helfen kann.

Beim Versuch zu lösen dieses ProblemIch habe einige Ideen, aber sie erfordern, dass ich das UIView für das kleine blaue Kästchen anzeige, wenn ein Wort automatisch korrigiert wird.

Ich denke, ich muss mit so etwas beginnen, habe aber keine Ahnung, wohin ich von hier aus gehen soll:

-(void) scrollViewDidScroll:(UIScrollView *)scrollView
{
NSArray *windows = [UIApplication sharedApplication].windows;
for (UIWindow *w in windows)
{
}
}

Ich füge dies als separate Frage hinzu, weil ichIch kann mir auch andere Gründe vorstellen, warum jemand darauf zugreifen möchte (vielleicht die Farbe / den Stil ändern?). Ich verstehe, es ist Teil des "Systems" und möglicherweise nicht die beste Vorgehensweise, um es zu ändern, aber ich denke, es ist wahrscheinlich in Ordnung, solange es nicht ein entscheidender Teil Ihrer App ist und Sie Ihren Code ziemlich sicher machen (dh Zeiger überprüfen) für nil, fehler auf seite der sicherheit) .in meinem fall möchte ich es jetzt nur verstecken, wenn es versteckt werden soll (beim scrollen).

Antworten:

0 für die Antwort № 1

Als mir klar wurde, dass UIWindow von UIView abgeleitet ist, kam ich auf diese mögliche Antwort, die bisher zu funktionieren scheint:

-(void) walkViews:(UIView*)v
{
NSString *className = NSStringFromClass([v class]);
if([className isEqualToString:@"UIAutocorrectInlinePrompt"])
v.hidden = YES;
NSArray *subviews = v.subviews;
for(UIView *sv in subviews)
[self walkViews:sv];
}

-(void) scrollViewDidScroll:(UIScrollView *)scrollView
{
NSArray *windows = [UIApplication sharedApplication].windows;
for (UIWindow *w in windows)
{
[self walkViews:w];
}
}

Anstatt diesen Code in einem Scroll-Ereignis zu haben,Sie können es überall dort platzieren, wo es Ihren Bedürfnissen entspricht. Die Hauptsache ist, dass alle Unteransichten nach UIAutocorrectInlinePrompt durchsucht werden. Anstatt es auszublenden, können Sie alles tun, was für Ihre speziellen Bedürfnisse erforderlich ist.