我有这样的一个需求,长按某个按钮后弹出自定义modal层,modal内有一个input,想要在弹出的同时focus到input上弹出键盘。
代码简化大致如下
<template> <view wx: if = "{{needShow}}" > <input type= "text" focus placeholder= '默认文字' /> </view> <view @longpress= 'longpress' style= "margin-top:100px;" > 长按我锁定 </view> <view @tap= 'hide' style= "margin-top:100px;" > 单击隐藏 </view> </template> data = { needShow: false } methods = { longpress() { console.log( '长按' ) this .needShow = true ; }, hide() { this .needShow = false ; } } |
我碰到的问题是:
长按后input的确获得了焦点,但是当我的手抬起后,键盘收回(Android下必然如此,iOS抬起时间稍早则不会),而我不希望键盘因为抬起的操作被收回。
尝试过catch方法防止冒泡,在modal层加遮罩并且也catch所有方法防止击穿,但在我手未抬起之前,我任然可以操作modal层下方的页面,只有抬手后再次放下才能被catch到。
微信均为最新版本,iOS和Android下均有这样的问题。
望解答 感谢