SwiftUI 自定义 Liquid Glass 分段控件:首次挂载动画异常与稳定实现
--- tags: - SwiftUI - macOS - Liquid-Glass - Animation - Debugging --- #SwiftUI #macOS #Liquid-Glass #Animation #Debugging SwiftUI 自定义 Liquid Glass 分段控件:首次挂载动画异常与稳定实现
> things I build, learn, and think about
--- tags: - SwiftUI - macOS - Liquid-Glass - Animation - Debugging --- #SwiftUI #macOS #Liquid-Glass #Animation #Debugging SwiftUI 自定义 Liquid Glass 分段控件:首次挂载动画异常与稳定实现
最近我在一个 macOS 桌面应用里从零实现了完整的 OIDC 登录:Authorization Code + PKCE、系统浏览器授权、Keychain 持久化、token 惰性刷新与轮换、userinfo 用户资料——全程没有引入任何第三方认证库,只用 Apple 平台自带的组件。本文把这段实现整理成一份通用的工程指南:协议背景、设计决策及其理由、端到端流程、踩过的构建系统与调试陷阱,以及一份可以直接照着做的检查清单。
Raspberry: 客户端Swift + 前端 -> 全栈,26Fall NYU MSCS,AI Coding 探索中,爱好iOS开发。如果你对开发(尤其是比较冷门的iOS相关领域),以及留学美国等等感兴趣,欢迎和我一起交流技术、实习、黑客松相关、升学以及未来在美生活等等。联系WeChat: ms2855190178
1. 生成密钥对
本文档详细记录了在 macOS SwiftUI 应用中集成容器终端(Container Terminal)功能的完整技术方案,包括方案选型依据、系统架构、核心实现细节,以及开发过程中遇到的关键问题与解决方案。
本文档描述如何在 macOS SwiftUI 应用中,通过 NSViewRepresentable 桥接 NSOutlineView,实现一个 类 Finder 的 File Tab——支持多列树形结构、目录懒加载、原生桌面级交互。
---
直接内核引导 (Direct Kernel Boot) 是一种绕过传统 bootloader(如 GRUB、systemd-boot)的虚拟机启动方式。虚拟机监控程序 (Hypervisor) 直接将 Linux 内核加载到内存并执行,而不是先启动一个 bootloader 再由其加载内核。
--- 背景与目标
本文档基于 Apple Virtualization 框架的实践经验,涵盖在 macOS 上创建和管理 Linux 虚拟机的完整技术方案。内容包括两种主流引导方式的对比、核心 API 使用、设备配置、常见问题排查及最佳实践。
https://chatgpt.com/share/694a9c6b-1b88-8011-9f39-7a1422727c74
React 生命周期是指在一个组件从创建到销毁的过程中,React 会自动调用一系列方法。生命周期方法可以分为三个主要阶段:挂载(Mounting)、更新(Updating)、卸载(Unmounting)。
在函数式组件中,常用的生命周期方法被 useEffect 取代。我们通过不同的 useEffect 配置来模拟类组件中的生命周期行为。
useEffect 依赖项相关
---
https://www.hackingwithswift.com/quick-start/concurrency/what-is-an-actor-and-why-does-swift-have-them
AttributedString 和 NSAttributedString 都是用于富文本处理的类,但它们分别代表了 Swift 的现代化设计哲学 和 Objective-C 的传统方式。我们来对比讲解这两个类,并分析为什么新的 AttributedString 是一次重要升级。 🧾 一、NSAttributedString(传统) 所属框架:
参考资料: https://www.cs.cornell.edu/asampson/blog/llvm.html https://zhuanlan.zhihu.com/p/472813616 https://www.cnblogs.com/luoganttcc/p/16603993.html
Apple Developer 稀土掘金参考
--- 动态类型和动态绑定 2.1 动态绑定和id数据类型 id类型:==是一种动态类型,一种通用的对象类型==,==可以指向任何 Objective-C 对象的指针,可以用来存储属于任何类的对象==。你可以用它指向任何类的实例(如 NSString、NSArray 或自定义类),但在运行时需确保对象能响应调用的方法,否则会崩溃。 https://chat.deepseek.com/a/chat/s/77092b14-4720-49e9-bfff-9a85469528d3 Obj-C系统总是跟踪对象所属的类:先判定对象的类,然后在==运行时==确定需要动态调用的方法,而不是在编译的时候。 2.2 编译时和运行时检查 因为存储在id变量中的对象在编译时无法确定,所以一些==测试推迟到运行时进行==。也就是说,推迟到程序执行时。
iOS 视图控制器的核心生命周期方法及调用顺序: