Files
Yuriy.Shikin 6ab7fa45a1 WireGuard
2022-04-25 07:28:13 +00:00

42 lines
1.1 KiB
Swift

//
// 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
}
}
}
}