【问题标题】:How to know when UIWebView is touched by the user如何知道用户何时触摸 UIWebView
【发布时间】:2016-04-26 12:04:48
【问题描述】:

我有一个 UIViewController ,它有一个用于放置位置的字段,一个用于编写一些技能的字段,以及一个用于编写描述的 uiWebView。我使用 uiWebView 是因为我将 html 格式的描述发送到后端。它非常适合我的需求。 不过我遇到的问题是,在 iphone 4 屏幕中,键盘完全覆盖了 uiWebView,因为 uiWebView 位于屏幕的垂直中间直到底部。

因此,为了让我进行偏移并将 uiWebView 设置在键盘上方,我需要知道用户何时触摸了 uiWebView(当用户开始在其上输入时)。尽管我已经搜索了一个解决方案,但我无法从 uiWebView 获得响应来告诉我它何时被用户触摸,因此我可以将其设置为偏移量。

所以我的问题是,有没有一种方法可以让 uiWebView 告诉我“嘿,用户已经开始在我身上打字了”?

【问题讨论】:

  • 您实际尝试过哪些方法,哪些部分没有奏效?在旁注中,我建议收听键盘显示和隐藏通知,而不是检测触摸或处理布局变化,并检测何时需要向上移动 Web 视图。后者应该适用于不需要任何操作的较大屏幕。
  • 我试过 webView.focused() , webView.becomefirstresponder() ,我需要类似android的focuslistener的东西。当用户触摸 web 视图时,它会告诉设备。我可以听键盘,但在我的情况下,我不需要在触摸前两个字段时更改偏移量,我只需要在 webView 上使用它。

标签: ios iphone swift uiwebview uiwebviewdelegate


【解决方案1】:

您不需要来自 UIWebView 的通知,您需要来自 UIKeyBoard 的通知来告诉您,它何时出现在屏幕上。

更多详情请看这篇文章:https://www.cocoanetics.com/2011/07/calculating-area-covered-by-keyboard/

【讨论】:

  • 我可以听键盘,但在我的情况下,我不需要在触摸前两个字段时更改偏移量,我只需要在 webView 上使用它。 Ofc 我也可以实现这个,但如果有的话,uiwebview 可以告诉我它被触动了,那将是我的完美解决方案。
  • 有些人建议重写 UIWebView 方法来确定 webView 是否获得焦点,比如这里:stackoverflow.com/questions/8474386/…不确定这是否是最好的解决方案
猜你喜欢
  • 2010-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-17
  • 1970-01-01
  • 2011-07-29
  • 2011-06-11
相关资源
最近更新 更多