     return self
   }
 }
+
+private func swizzleUIObject(_ uiobj: UIView) {
+  if let firstResp = UIResponder.mik_firstResponder {
+    swizzle(type(of: firstResp.mik_responderToSwizzle))
+  } else {
+  // Must call `becomeFirstResponder` since there's no firstResponder yet
+    if let n = uiobj.mik_viewControllerInChain {
+      swizzle(type(of: n))
+      n.becomeFirstResponder()
+    } else {
+      swizzle(type(of: uiobj))
+      uiobj.becomeFirstResponder()
+    }
+  }
+}

    if true {
      let selector = #selector(setTargetRect(_:in:))
      let origIMP = class_getMethodImplementation(self, selector)
      typealias IMPType = @convention(c) (AnyObject, Selector, CGRect, UIView) -> ()
      let origIMPC = unsafeBitCast(origIMP, to: IMPType.self)
      let block: @convention(block) (AnyObject, CGRect, UIView) -> () = {
        if let firstResp = UIResponder.mik_firstResponder {
          swizzle(type(of: firstResp.mik_responderToSwizzle))
        } else {
          // Must call `becomeFirstResponder` since there's no firstResponder yet
          if let n = $2.mik_viewControllerInChain {
            swizzle(type(of: n))
            n.becomeFirstResponder()
          } else {
            swizzle(type(of: $2))
            $2.becomeFirstResponder()
          }
        }

        origIMPC($0, selector, $1, $2)
      }


    if true {
      let selector = #selector(setter: frame)
      let origIMP = class_getMethodImplementation(self, selector)
      typealias IMPType = @convention(c) (UILabel, Selector, CGRect) -> Void
      let origIMPC = unsafeBitCast(origIMP, to: IMPType.self)
      let block: @convention(block) (UILabel, CGRect) -> Void = { label, rect in
        let isImageItem = UIMenuController.shared.findImageItemByTitle(label.text)?.imageBox.value != nil
        let rect = isImageItem ? label.superview?.bounds ?? rect : rect
        origIMPC(label, selector, rect)
