// // ViewExtension.swift // SodaLive // // Created by klaus on 2022/05/19. // import SwiftUI import Combine extension View { func screenSize() -> CGRect { return UIScreen.main.bounds } // 출처 - https://stackoverflow.com/a/58606176 func cornerRadius(_ radius: CGFloat, corners: UIRectCorner) -> some View { clipShape( RoundedCorner(radius: radius, corners: corners) ) } func hideKeyboard() { UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil) } /// A backwards compatible wrapper for iOS 14 `onChange` @ViewBuilder func valueChanged(value: T, onChange: @escaping (T) -> Void) -> some View { if #available(iOS 14.0, *) { self.onChange(of: value, perform: onChange) } else { self.onReceive(Just(value)) { (value) in onChange(value) } } } @ViewBuilder func scrollContentBackgroundHidden() -> some View { if #available(iOS 16.0, *) { self.scrollContentBackground(.hidden) } } @ViewBuilder func progressColor(color: Color) -> some View { if #available(iOS 16.0, *) { self.tint(color) } else { self.accentColor(color) } } }