Monitor/Sources/FloatingMonitor/App/FloatingWindow.swift
JOJO 4ab9a7b28c Initial: FloatingMonitor — macOS 悬浮系统监控
- 实时 CPU/GPU/内存/Swap 监控 + Top 进程
- 5 种计量器样式(圆环/条状/纯文本/扇形/紧凑)
- 半透明悬浮窗 + 菜单栏图标控制
- 独立设置窗口,每模块可指定行号+列位布局
- 窗口宽高/透明度/字体全局可调
2026-05-05 21:26:44 +08:00

28 lines
974 B
Swift

import AppKit
///
final class FloatingWindow: NSWindow {
override var canBecomeKey: Bool { true }
override var canBecomeMain: Bool { false }
override init(
contentRect: NSRect = NSRect(x: 0, y: 0, width: 250, height: 300),
styleMask style: NSWindow.StyleMask = [.borderless, .resizable],
backing backingStoreType: NSWindow.BackingStoreType = .buffered,
defer flag: Bool = false
) {
super.init(contentRect: contentRect, styleMask: style, backing: backingStoreType, defer: flag)
self.level = .floating
self.collectionBehavior = [.canJoinAllSpaces, .stationary, .fullScreenAuxiliary]
self.isOpaque = false
self.backgroundColor = .clear
self.hasShadow = true
self.isMovableByWindowBackground = true
self.minSize = NSSize(width: 240, height: 200)
self.titlebarAppearsTransparent = true
self.titleVisibility = .hidden
}
}