UIMenuController不能正常显示或消失

在实现聊天模块的复制功能时,遇到UIMenuController无法正常显示和消失的问题。通过调整自定义UIMenuController和TextView的设置,解决了显示问题。当将Label替换为TextView以支持电话拨打功能后,发现单行TextView中菜单选项消失。经过观察,发现由于选中状态的蓝色大头针显示不全导致。通过调整textView的Frame和textContainerInset,最终解决了这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目里有聊天模块,一开始客户要求加点击复制功能,要有Menu和选中效果,于是添加了一个自定义的UIMenuController,只有复制选项。

但是无论如何都显示不出来T__T

搜索后在这篇文章找到了答案,问题解决。


然后客户又要求聊天中的电话号码可以直接拨打_(:з」∠)_

想了下决定用UITextView中的dataDetctorType直接实现,所以动手把所有Label改成了TextView,editable属性设为NO。到这里都很顺利,然后发现在单行textView中调自带的Menu时点击选项居然消失不了T——T

搜索答案未果,经过仔细观察,发现单行中因为Frame较小,选中状态的蓝色大头针显示不全,上下拖动tableView后,蓝色大头针显示全了,点击Menu选项就有效果了。

于是手动调整了一下textView的Frame和textContainerInset,问题解决。

<p style="margin-top: 0px; margin-bottom: 0px; font-size: 13px; font-family: Menlo;"><span style="white-space:pre">	</span>messageTextView.<span style="font-variant-ligatures: no-common-ligatures; color: #703daa">textContainerInset</span> = <span style="font-variant-ligatures: no-common-ligatures; color: #3d1d81">UIEdgeInsetsMake</s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值