Ariver
2026-06-11 d6fb60c8c128566abab21c6e15b1fd7ce2761235
Fix settings window height for stable tabs
5 files modified
34 ■■■■■ changed files
src/Apptag/ApptagApp.swift 4 ●●●● patch | view | raw | blame | history
src/Apptag/Info.plist 4 ●●●● patch | view | raw | blame | history
src/Apptag/PreferencesView.swift 12 ●●●●● patch | view | raw | blame | history
src/CHANGELOG.md 7 ●●●●● patch | view | raw | blame | history
src/build.sh 7 ●●●●● patch | view | raw | blame | history
src/Apptag/ApptagApp.swift
@@ -17,7 +17,7 @@
        Settings {
            PreferencesView()
        }
        .defaultSize(width: 1000, height: 480)
        .defaultSize(width: 1000, height: 640)
        .commands {
            CommandGroup(replacing: .systemServices) { }
            CommandGroup(replacing: .appVisibility) { }
@@ -42,7 +42,7 @@
    private static let launcherOverlayLevel = NSWindow.Level(rawValue: NSWindow.Level.mainMenu.rawValue - 1)
    private static let overlayDefaultLevel = launcherOverlayLevel
    private static let overlayTextInputLevel = launcherOverlayLevel
    private static let settingsContentSize = NSSize(width: 1000, height: 480)
    private static let settingsContentSize = NSSize(width: 1000, height: 640)
    private var statusItem: NSStatusItem?
    private var overlayKeyMonitor: Any?
src/Apptag/Info.plist
@@ -19,9 +19,9 @@
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>7.8.27</string>
    <string>7.8.28</string>
    <key>CFBundleVersion</key>
    <string>20260611.1548</string>
    <string>20260611.1558</string>
    <key>LSApplicationCategoryType</key>
    <string>public.app-category.utilities</string>
    <key>LSMinimumSystemVersion</key>
src/Apptag/PreferencesView.swift
@@ -38,6 +38,7 @@
struct PreferencesView: View {
    private let settingsWindowWidth: CGFloat = 1000
    private let settingsWindowHeight: CGFloat = 640
    private let settingsContentWidth: CGFloat = 940
    private let generalContentWidth: CGFloat = 720
    private let generalLabelWidth: CGFloat = 190
@@ -528,12 +529,12 @@
    }
    private var settingsTabBar: some View {
        HStack(spacing: 18) {
        HStack(spacing: 8) {
            ForEach(SettingsTab.allCases) { tab in
                settingsTabButton(tab)
            }
        }
        .frame(height: 104, alignment: .center)
        .frame(height: 96, alignment: .center)
        .frame(maxWidth: .infinity)
        .background(Color(nsColor: .windowBackgroundColor))
    }
@@ -550,11 +551,12 @@
                    .frame(width: 32, height: 32)
                Text(tr(tab.titleKey))
                    .font(.system(size: 13, weight: .semibold))
                    .lineLimit(1)
                    .lineLimit(2)
                    .multilineTextAlignment(.center)
                    .minimumScaleFactor(0.8)
            }
            .foregroundStyle(isSelected ? Color.accentColor : Color.secondary)
            .frame(width: 72, height: 70)
            .frame(width: 108, height: 74)
            .background(
                RoundedRectangle(cornerRadius: 8, style: .continuous)
                    .fill(isSelected ? Color.accentColor.opacity(0.10) : Color.clear)
@@ -1031,7 +1033,7 @@
                .transition(.opacity.combined(with: .move(edge: .bottom)))
            }
        }
        .frame(width: settingsWindowWidth, height: 480)
        .frame(width: settingsWindowWidth, height: settingsWindowHeight)
        .onAppear {
            syncSelectedLanguage()
            showPendingHotkeyWarningIfNeeded()
src/CHANGELOG.md
@@ -1,5 +1,12 @@
# TagLauncher Changelog
## [7.8.28] — 2026-06-11
- 修复设置页改用自定义顶部导航后,内容区域高度不足导致 General 等 tab 默认出现纵向滚动/底部内容被截断的问题
- 设置页窗口、SwiftUI 视图和 AppKit 手工窗口尺寸统一为稳定固定高度;顶部 tab button 放宽文字宽度并支持两行标题,避免英文标题被截断
- 构建脚本优先使用仓库内已验证的 `icon-icns.icns`,避免当前系统 `iconutil` 对临时 AppIcon iconset 判定不稳定导致打包失败
- 版本号更新为 `7.8.28`,Build 更新为 `20260611.1558`
## [7.8.27] — 2026-06-11
- 设置页顶部导航改为自定义稳定 tab bar,不再依赖 SwiftUI `TabView` 默认 macOS 样式,避免 macOS 14 与较新系统渲染成不同的工具栏/分段控件外观
src/build.sh
@@ -77,7 +77,10 @@
echo "==> Copying AppIcon.icns..."
APPICON_SOURCE_DIR="$SWIFT_DIR/Assets.xcassets/AppIcon.appiconset"
if [ -d "$APPICON_SOURCE_DIR" ]; then
PREBUILT_APPICON="$PROJECT_DIR/icon-icns.icns"
if [ -f "$PREBUILT_APPICON" ]; then
    cp "$PREBUILT_APPICON" "$RESOURCES_DIR/AppIcon.icns"
elif [ -d "$APPICON_SOURCE_DIR" ]; then
    TMP_ICONSET_PARENT="$(mktemp -d -t taglauncher-appicon.XXXXXX)"
    TMP_ICONSET="$TMP_ICONSET_PARENT/AppIcon.iconset"
    mkdir -p "$TMP_ICONSET"
@@ -102,8 +105,6 @@
    done
    iconutil -c icns "$TMP_ICONSET" -o "$RESOURCES_DIR/AppIcon.icns"
    rm -rf "$TMP_ICONSET_PARENT"
elif [ -f "$PROJECT_DIR/icon-icns.icns" ]; then
    cp "$PROJECT_DIR/icon-icns.icns" "$RESOURCES_DIR/AppIcon.icns"
elif [ -f "$SWIFT_DIR/AppIcon.iconset/icon_512x512@2x.png" ]; then
    iconutil -c icns "$SWIFT_DIR/AppIcon.iconset" -o "$RESOURCES_DIR/AppIcon.icns" 2>/dev/null
else