fix
杨锴
2024-08-23 adc2db9bb29e7f316c46b6de679db1522ffc9cc8
Pods/IQKeyboardManagerSwift/IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift
@@ -41,9 +41,9 @@
     IQToolbar references for better customization control.
     */
    var toolbar: IQToolbar {
        var toolbar: IQToolbar? = base.inputAccessoryView as? IQToolbar
        var toolbar: IQToolbar? = base?.inputAccessoryView as? IQToolbar
        if toolbar == nil {
        if toolbar == nil, let base = base {
            toolbar = objc_getAssociatedObject(base, &AssociatedKeys.toolbar) as? IQToolbar
        }
@@ -51,12 +51,14 @@
            return unwrappedToolbar
        } else {
            let width: CGFloat = base.window?.windowScene?.screen.bounds.width ?? 0
            let width: CGFloat = base?.window?.windowScene?.screen.bounds.width ?? 0
            let frame = CGRect(origin: .zero, size: .init(width: width, height: 44))
            let newToolbar = IQToolbar(frame: frame)
            objc_setAssociatedObject(base, &AssociatedKeys.toolbar, newToolbar, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
            if let base = base {
                objc_setAssociatedObject(base, &AssociatedKeys.toolbar, newToolbar, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
            }
            return newToolbar
        }
@@ -69,12 +71,17 @@
     */
    var hidePlaceholder: Bool {
        get {
            return objc_getAssociatedObject(base, &AssociatedKeys.hidePlaceholder) as? Bool ?? false
            if let base = base {
                return objc_getAssociatedObject(base, &AssociatedKeys.hidePlaceholder) as? Bool ?? false
            }
            return false
        }
        set(newValue) {
            objc_setAssociatedObject(base, &AssociatedKeys.hidePlaceholder,
                                     newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
            toolbar.titleBarButton.title = drawingPlaceholder
            if let base = base {
                objc_setAssociatedObject(base, &AssociatedKeys.hidePlaceholder,
                                         newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
                toolbar.titleBarButton.title = drawingPlaceholder
            }
        }
    }
@@ -83,11 +90,18 @@
     */
    var placeholder: String? {
        get {
            return objc_getAssociatedObject(base, &AssociatedKeys.placeholder) as? String
            if let base = base {
                return objc_getAssociatedObject(base, &AssociatedKeys.placeholder) as? String
            }
            return nil
        }
        set(newValue) {
            objc_setAssociatedObject(base, &AssociatedKeys.placeholder, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
            toolbar.titleBarButton.title = drawingPlaceholder
            if let base = base {
                // swiftlint:disable line_length
                objc_setAssociatedObject(base, &AssociatedKeys.placeholder, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
                toolbar.titleBarButton.title = drawingPlaceholder
                // swiftlint:enable line_length
            }
        }
    }
@@ -101,7 +115,7 @@
            return nil
        } else if placeholder?.isEmpty == false {
            return placeholder
        } else if let placeholderable: IQPlaceholderable = base as? IQPlaceholderable {
        } else if let placeholderable: any IQPlaceholderable = base as? (any IQPlaceholderable) {
            if let placeholder = placeholderable.attributedPlaceholder?.string,
                !placeholder.isEmpty {
@@ -128,7 +142,7 @@
                    titleAccessibilityLabel: String? = nil) {
        // If can't set InputAccessoryView. Then return
        if base.responds(to: #selector(setter: UITextField.inputAccessoryView)) {
        if base?.responds(to: #selector(setter: UITextField.inputAccessoryView)) == true {
            //  Creating a toolBar for phoneNumber keyboard
            let toolbar: IQToolbar = toolbar
@@ -190,7 +204,7 @@
            //  Adding button to toolBar.
            toolbar.items = items
            if let textInput: UITextInput = base as? UITextInput {
            if let textInput: any UITextInput = base as? (any UITextInput) {
                switch textInput.keyboardAppearance {
                case .dark?:
                    toolbar.barStyle = .black
@@ -200,14 +214,14 @@
            }
            //  Setting toolbar to keyboard.
            let reloadInputViews: Bool = base.inputAccessoryView != toolbar
            let reloadInputViews: Bool = base?.inputAccessoryView != toolbar
            if reloadInputViews {
                if let textField: UITextField = base as? UITextField {
                    textField.inputAccessoryView = toolbar
                } else if let textView: UITextView = base as? UITextView {
                    textView.inputAccessoryView = toolbar
                }
                base.reloadInputViews()
                base?.reloadInputViews()
            }
        }
    }