| | |
| | | /// Wrapper for IQKeyboardManager compatible types. This type provides an extension point for |
| | | /// convenience methods in IQKeyboardManager. |
| | | @available(iOSApplicationExtension, unavailable) |
| | | public struct IQKeyboardManagerWrapper<Base> { |
| | | public let base: Base |
| | | public struct IQKeyboardManagerWrapper<Base: AnyObject> { |
| | | public private(set) weak var base: Base? |
| | | public init(_ base: Base) { |
| | | self.base = base |
| | | } |
| | |
| | | @available(iOSApplicationExtension, unavailable) |
| | | public protocol IQKeyboardManagerCompatible { |
| | | /// Type being extended. |
| | | associatedtype Base |
| | | associatedtype Base: AnyObject |
| | | |
| | | /// Instance IQKeyboardManager extension point. |
| | | @MainActor |
| | | var iq: IQKeyboardManagerWrapper<Base> { get set } |
| | | } |
| | | |
| | | // swiftlint:disable unused_setter_value |
| | | @available(iOSApplicationExtension, unavailable) |
| | | public extension IQKeyboardManagerCompatible { |
| | | public extension IQKeyboardManagerCompatible where Self: AnyObject { |
| | | |
| | | /// Instance IQKeyboardManager extension point. |
| | | @MainActor |
| | | var iq: IQKeyboardManagerWrapper<Self> { |
| | | get { IQKeyboardManagerWrapper(self) } |
| | | set {} |