QMUI_iOS icon indicating copy to clipboard operation
QMUI_iOS copied to clipboard

UIView.qmui_viewController不够准确

Open CloudlessMoon opened this issue 4 months ago • 4 comments

Bug 表现 当手动设置[viewController setView:[[UIView alloc] init]]时,view.qmui_viewController就无法找到了。

截图 Image 目前只有在viewDidLoad时才设置qmui_viewController

预期的表现

保险起见,应改为: Image

其他信息

  • 设备: All
  • iOS 版本: All
  • Xcode 版本: All
  • QMUI 版本: 4.8.0

CloudlessMoon avatar Aug 11 '25 01:08 CloudlessMoon

一直觉得利用 hook 生命周期的方式去设置 qmui_viewController 没有必要且容易疏漏的 实测递归 view.responder?.next 的方式获取容器 UIViewController 的时间为 5-10 μs(注意是“微秒”不是“毫秒”),这个级别的耗时在 UI 层是可以忽略不计的,兼容性也更好

codingiran avatar Aug 11 '25 02:08 codingiran

一直觉得利用 hook 生命周期的方式去设置 qmui_viewController 没有必要且容易疏漏的 实测递归 view.responder?.next 的方式获取容器 UIViewController 的时间为 5-10 μs(注意是“微秒”不是“毫秒”),这个级别的耗时在 UI 层是可以忽略不计的,兼容性也更好

我测试了下,view.responder?.next和qmui_viewController,在大部分场景下两者是相等的,但是在某些情况下是不同的,如下图所示:

Image Image

提这个issue,是由于App上报了这个错误,我一开始也是递归 responder?.next,但实际上customView所在的控制器是UICompatibilityInputViewController,textView属于delegate.window上的,customView属于inputWindow上的,两个视图在不同的window上时view.responder?.next和qmui_viewController就不相等了,还是qmui_viewController准确些

CloudlessMoon avatar Aug 11 '25 03:08 CloudlessMoon

即刻修复,但过阵子再更新版本😂

MoLice avatar Aug 12 '25 09:08 MoLice

即刻修复,但过阵子再更新版本😂

一年没更新了😭,大佬求更新

c137Choi avatar Sep 13 '25 15:09 c137Choi