CNLiveConfigManager.swift 2.1 KB
//
//  CNLiveConfigManager.swift
//  metaCode
//
//  Created by open on 2023/6/5.
//

import Foundation

class ConfigManager : NSObject {
    
    static let shared = ConfigManager()
    
    public var show_update:Bool = true//可以进行显示更新
    public var keyboardDisplayHeight : CGFloat = 0
    
    private override init() {
        super.init()
        NotificationCenter.default.addObserver(self, selector: #selector(keyboardDidShowNotification), name: UIResponder.keyboardDidShowNotification, object: nil)
        NotificationCenter.default.addObserver(self, selector: #selector(keyboardDidChangeFrameNotification), name: UIResponder.keyboardDidChangeFrameNotification, object: nil)
        NotificationCenter.default.addObserver(self, selector: #selector(keyboardDidHideNotification), name: UIResponder.keyboardDidHideNotification, object: nil)
    }
    
    deinit {
        NotificationCenter.default.removeObserver(self, name: UIResponder.keyboardDidShowNotification, object: nil)
        NotificationCenter.default.removeObserver(self, name: UIResponder.keyboardDidChangeFrameNotification, object: nil)
        NotificationCenter.default.removeObserver(self, name: UIResponder.keyboardDidHideNotification, object: nil)
    }
    
    override class func copy() -> Any {
        return self
    }
    
    override class func mutableCopy() -> Any {
        return self
    }
    
    @objc private func keyboardDidShowNotification(notification : Notification) {
        let keyboardValue = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue
        ConfigManager.shared.keyboardDisplayHeight = keyboardValue?.cgRectValue.size.height ?? 0
    }
    @objc private func keyboardDidChangeFrameNotification(notification : Notification) {
        let keyboardValue = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue
        ConfigManager.shared.keyboardDisplayHeight = keyboardValue?.cgRectValue.size.height ?? 0
    }
    @objc private func keyboardDidHideNotification(notification : Notification) {
        ConfigManager.shared.keyboardDisplayHeight = 0
    }
    
    
    
}