2015-03-20 2 views
0

Кажется, что вы можете получить доступ к большинству просмотров/окон в iOS, но у меня нет большого опыта, поэтому надеюсь, что кто-то может помочь.Получить доступ к UIView/UIWindow для маленькой синей автоматической коррекции

При попытке решить this issue у меня есть некоторые идеи, но они потребуют от меня использовать UIView для маленького синего квадрата, отображаемого, когда слово будет автокорректировано.

Я думаю, что нужно, чтобы начать что-то вроде этого, но понятия не имею, куда идти отсюда:

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

Я добавляю это как отдельный вопрос, потому что я могу думать о других причин, человек может захотеть получить к нему доступ (возможно, измените цвет/стиль?). Я понимаю, что это часть «системы» и, возможно, не самая лучшая практика для ее изменения, но я думаю, что это, вероятно, хорошо, пока не является важной частью вашего приложения, и вы делаете свой код довольно безопасным (т. Е. Проверочные указатели на nil , ошибка со стороны безопасности). В моем случае, на данный момент, я просто хочу скрыть это, когда он должен быть скрыт (при прокрутке).

ответ

0

После того, как я понял, UIWindow был получен из UIView я придумал этот возможный ответ, который, кажется, работает до сих пор:

-(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]; 
    } 
} 

Вместо того, чтобы этот код в событии прокрутки, вы можете поместить его там, где костюмы твои нужды. Главное, что он просматривает все подзаголовки, которые ищут UIAutocorrectInlinePrompt. Вместо того, чтобы скрывать это, вы можете делать все, что необходимо для ваших конкретных потребностей.

Смежные вопросы