// // DynamicTextField.swift // PrivadoVPN // // Created by Murad Shabanov on 03.11.2021. // Copyright © 2021 Privado LLC. All rights reserved. // import Foundation final class DynamicTextField: NSTextField { public var fontName = PrivadoConstants.Font.regular let minimumFontSize: CGFloat = 8 var sizeNotOkay = true override func layout() { super.layout() while sizeNotOkay { let expansionRect = self.expansionFrame(withFrame: self.frame) let truncated = !NSEqualRects(NSRect.zero, expansionRect) if truncated { if let actualFontSize: CGFloat = self.font?.fontDescriptor.object(forKey: NSFontDescriptor.AttributeName.size) as? CGFloat { self.font = NSFont(name: fontName, size: actualFontSize - 1) if actualFontSize < minimumFontSize { break } } } else { sizeNotOkay = false } } } }