在alerview被解雇后如何使webview成为第一响应者

Posted

技术标签:

【中文标题】在alerview被解雇后如何使webview成为第一响应者【英文标题】:How to make webview become firstresponder after alerview dismissed 【发布时间】:2015-09-17 07:47:30 【问题描述】:

我有一个包含 webview 的视图控制器 A,A 在导航视图控制器的顶部。webview 用于加载网页,网页包含一个文本字段和一个按钮。

如果我单击按钮,则 UIAlertView 会显示在 APP 中。在我单击“确定”按钮(在 UIAlertView 中)以关闭警报视图后,我想在文本字段中输入,但我不能,因为文本字段无法变为可编辑。我点击它,它没有任何反应。这个时候我只能点击导航控制器的返回按钮。

我试过用:

[webView becomeFirstResponder];

这不起作用。

如果我使用:

[webView reload];

它有效。但我不想使用重新加载,因为它需要时间。

有什么建议吗?

非常感谢!

【问题讨论】:

【参考方案1】:

你可以试试

-(void)setUpWebView
    NSString* url = [NSString stringWithFormat:@“url"];
    NSURL* nsUrl = [NSURL URLWithString:url];
    NSURLRequest* request = [NSURLRequest requestWithURL:nsUrl cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:30];
        [self.webView loadRequest:request];



-(void)showWebView
    [self setUpWebView];
    self.viewThisWebView.frame = CGRectMake(0, 0 , 320, 560);
    self.viewThisWebView.alpha = 0;
    [self.view addSubview:  self.viewThisWebView];
   
    [UIView animateWithDuration:0.4 animations:^
        self.viewThisWebView.alpha = 1;
     completion:^(BOOL finished) 
        
    ];




- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
        
        if (buttonIndex == 1) 
          [self showWebView];
            
        

    

【讨论】:

以上是关于在alerview被解雇后如何使webview成为第一响应者的主要内容,如果未能解决你的问题,请参考以下文章

UIMenuController 在呈现后立即被解雇

iOS Swift:如何创建像 UIAlertView 这样看似在解雇后自行消失的对象

Android Spinner在Espresso测试中点击后立即被解雇

SwiftUI .sheet() 的主体在解雇后被评估并且不呈现

在发送者视图控制器被解雇后执行 segue

Unity + Admob奖励广告:活动没有解雇