Показать вид над клавиатурой

Я ищу способ на iPhone из-за пользовательского «загрузочного» подпредставления, чтобы подпредставление закрывало клавиатуру, не закрывая клавиатуру. Прямо сейчас, когда загружается подвид, клавиатура по-прежнему находится сверху. Любые идеи?


person Jake Sankey    schedule 01.07.2011    source источник
comment
Всякий раз, когда вы добавляете подвид к текущему представлению, просто напишите этот код перед добавлением подвида [TextView resignFirstResponder]; когда вы открываете клавиатуру из UITextView.   -  person Mehul Mistri    schedule 01.07.2011


Ответы (3)


добавьте свой вид загрузки в качестве подвида в окно. Он также закроет клавиатуру. Вот сообщение stackoverflow для того же

iPhone — показать индикатор ожидания

ОБНОВЛЕНИЕ

Мой код

#pragma mark -
#pragma mark Waiting View
- (void)showWaitingView {

    CGRect frame = CGRectMake(90, 190, 32, 32);
    UIActivityIndicatorView* progressInd = [[UIActivityIndicatorView alloc] initWithFrame:frame];
    [progressInd startAnimating];
    progressInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;

    frame = CGRectMake(130, 193, 140, 30);
    UILabel *waitingLable = [[UILabel alloc] initWithFrame:frame];
    waitingLable.text = @"Processing...";
    waitingLable.textColor = [UIColor whiteColor];
    waitingLable.font = [UIFont systemFontOfSize:20];;
    waitingLable.backgroundColor = [UIColor clearColor];
    frame = [[UIScreen mainScreen] applicationFrame];
    UIView *theView = [[UIView alloc] initWithFrame:frame];
    theView.backgroundColor = [UIColor blackColor];
    theView.alpha = 0.7;
    theView.tag = 999;
    [theView addSubview:progressInd];
    [theView addSubview:waitingLable];

    [progressInd release];
    [waitingLable release];

    [window addSubview:[theView autorelease]];
    [window bringSubviewToFront:theView];
}

- (void)removeWaitingView {
    UIView *v = [window viewWithTag:999];
    if(v) [v removeFromSuperview];

}
person Rahul Vyas    schedule 01.07.2011
comment
Спасибо за ссылку. На самом деле MBProgressHUD — это то, что я пытаюсь реализовать. однако я хочу, чтобы клавиатура всегда оставалась видимой, а MBProgressHUD находился за клавиатурой. - person Jake Sankey; 01.07.2011
comment
@Jake Sankey Вы можете добавить mbprogresshud в окно вместо текущего представления. Я публикую простой код для отображения индикатора активности. Вы можете использовать это. - person Rahul Vyas; 01.07.2011
comment
в моем файле реализации нет «окна». он находится в делегате приложения. я пробовал [super.view.window addSubview:HUD]; без везения... - person Jake Sankey; 01.07.2011
comment
у вас есть окно в applicationDelegate. Из делегата приложения вам нужно вызвать эту функцию. - person Rahul Vyas; 01.07.2011
comment
Прости, Рахул, я не понимаю, что ты имеешь в виду. Какую функцию я вызываю? Я пытаюсь загрузить MBProgressHUD через свой контроллер представления, поэтому делегат приложения (который определяет «окно») не кажется доступным. - person Jake Sankey; 01.07.2011
comment
вы можете получить доступ к appDelegate в любом месте приложения, используя приведенный ниже код yourAppdelegateName *appDelegate = [UIApplication sharedApplication].delegate; Кстати, код, который я разместил, вам нужно вставить в свой класс appDelegate. А затем доступ, как это. yourAppdelegateName *appDelegate = [UIApplication sharedApplication].delegate; //Для отображения представления ожидания [appDelegate showWaitingView]; //Для удаления представления ожидания [appDelegate removeWaitingView]; - person Rahul Vyas; 01.07.2011
comment
похоже, это не работает с iOS5 SDK. Клавиатура на высоте, несмотря ни на что. - person Jiho Kang; 12.10.2011

person    schedule
comment
большой! при появлении клавиатуры - счет будет 2 - person Rubycon; 13.03.2013
comment
Просто добавьте представление в [UIApplication sharedApplication].windows.lastObject тоже работает, спасибо. - person Kyle Fang; 04.07.2013

person    schedule
comment
как мы можем получить фронт UIPopoverController вперед? - person AykutE; 06.03.2015