首页
学习
活动
专区
圈层
工具
发布

Ask Apple 2022 与 SwiftUI 有关的问答(下)

本文对本次活动中与 SwiftUI 有关的一些问答进行了整理,并添加了一点个人见解。本文为下篇。访问我的博客 www.fatbobman.com[1] 可以获得更好的阅读体验以及最新的更新内容。...,只提取你需要的属性,并依靠 SwiftUI 的 equality 检查来提前中止无效计算苹果工程师给出的答案与 避免 SwiftUI 视图的重复计算[5] 一文中的很多建议都一致。...快速检索数组元素Q:为什么没有简单的方法将 TABLE 选择的行映射到提供表内容的数组元素上?似乎唯一的方法是在数组中搜索匹配的 id 值,这对于大表来说似乎效率很低。...macOS APIQ:对于运行 Monterey 的 Mac,能否如何在 SwiftUI 中实现下面需求的建议:打开一个窗口在该窗口中初始化数据找到所有打开的窗口确定一个窗口是否打开从不在该窗口的视图中关闭一个窗口...Too complex to type checkQ:我在 iOS 14 SwiftUI 中遇到一个问题,我试图有条件地显示 3 个符合 Shape 协议的对象中的一个。

19.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    变暗的 Liquid Glass 和消失的 Apple Intelligence | 肘子的 Swift 周报 #093

    加入 Discord[3]社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。...如果你想更深入了解 Animatable协议的工作原理,建议一并阅读 Majid 的另一篇文章 The magic of Animatable values in SwiftUI[7]。...如何在 macOS 上用 SwiftUI 展示独立窗口 (Presenting Secondary Windows on macOS with SwiftUI)[17] 在过去的两年中,SwiftUI...文章详细讲解了窗口的创建、配置以及程序化的打开和关闭方法。当我看到文章提到的大量以 window开头的视图修饰器,才明显地感受到,不知不觉间,SwiftUI 已经在 macOS 上成长了很多。...上用 SwiftUI 展示独立窗口 (Presenting Secondary Windows on macOS with SwiftUI): https://l.fatbobman.com/w093

    25300

    Ask Apple 2022 与 SwiftUI 有关的问答(上)

    本文对本次活动中与 SwiftUI 有关的一些问答进行了整理,并添加了一点个人见解。本文为上篇。访问我的博客 www.fatbobman.com[1] 可以获得更好的阅读体验以及最新的更新内容。...请查看 ShareLink[3]contextActionQ:在早期的 iOS 16 和 macOS 13 测试版中,我们看到一个新的 .contextAction 修改器,后来被删除了。...WindowGroup 和 OpenWindowActionQ:在 macOS 上是否可以在创建新窗口时附加参数?我在同一个子上下文中创建一个新的托管对象,并希望将这个对象发送到一个新的窗口。...它也可以在 iPadOS 上工作,将创建一个新的场景,即 2/3 或 1/3 分割。...不是因为它不能工作,而是因为如果你不深入了解 @State 和身份( identity )的工作原理,它的行为就会相当混乱。

    15.7K20

    打造可适配多平台的 SwiftUI 应用

    有关本次活动的情况,可以参阅 我在北京参加 SwiftUI 技术沙龙 一文。本次活动采用的是线下交流并辅以 live coding 的形式,因此内容的侧重点以及组织形式与以往的博客文章会有明显的不同。...SwiftUI 通过设定了某些兼容性的限制,促使开发者在做多平台适配时,不得不考虑平台特点的不同,并根据这些不同来做有针对性的调整。...但是,如果开发者不能理解 SwiftUI 的这个“限制”,并提前做一些准备工作,可能会为之后的多平台开发工作带来一些隐患和增加不必要的工作量。以“电影猎手”的 iPad 版本为例。...这种做法不仅可以解决跨平台兼容性问题,还有其他好处:可以改善视图中代码的整洁度(减少条件编译语句的使用)可以改善 SwiftUI 在不同版本之间的兼容性当然,要创建并使用这类代码,前提是开发者必须已经对...当我们将“电影猎手”从 iPhone 移植到 iPad 或 Mac 上时,除了屏幕可用空间更大之外,另一个显着的变化是使用者可以同时打开多个窗口,并可以在不同的窗口中对“电影猎手”进行独立的操作。

    4.2K80

    打造可适配多平台的 SwiftUI 应用

    image-20230424090345471 mac 版本进行了更多符合 macOS 风格的适配,例如:使用了符合 mac 规范的设置视图、支持指针悬浮响应、菜单栏图标,并且支持创建新窗口并直接跳转到特定电影类别...SwiftUI 通过设定了某些兼容性的限制,促使开发者在做多平台适配时,不得不考虑平台特点的不同,并根据这些不同来做有针对性的调整。...但是,如果开发者不能理解 SwiftUI 的这个“限制”,并提前做一些准备工作,可能会为之后的多平台开发工作带来一些隐患和增加不必要的工作量。 以“电影猎手”的 iPad 版本为例。...这种做法不仅可以解决跨平台兼容性问题,还有其他好处: 可以改善视图中代码的整洁度(减少条件编译语句的使用) 可以改善 SwiftUI 在不同版本之间的兼容性 当然,要创建并使用这类代码,前提是开发者必须已经对...当我们将“电影猎手”从 iPhone 移植到 iPad 或 Mac 上时,除了屏幕可用空间更大之外,另一个显着的变化是使用者可以同时打开多个窗口,并可以在不同的窗口中对“电影猎手”进行独立的操作。

    3.1K10

    WWDC 2025 开发者特辑 | 肘子的 Swift 周报 #088

    加入 Discord[3]社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。 WWDC 2025 开发者特辑 WWDC 2025 带来了众多令人瞩目的新功能和 API。...是 WWDC 2025 中 SwiftUI 的视觉增强工具,通过将图片或背景内容扩展并模糊至视图边界外,实现更具沉浸感和系统一致性的设计效果。...修复项目无法在 Xcode 26 中打开的方法[38]by Cihat Gündüz[39] 右键点击 .xcodeproj 文件,选择"显示包内容"。...Cook up 3D charts with Swift Charts by Artem Novichkov[50] Swift Charts 在 WWDC25 中新增了 Chart3D API,让开发者无需依赖第三方库即可在...x.com/unixzii/status/1932819040596340953 [37] Cyandev: https://x.com/unixzii [38] 修复项目无法在 Xcode 26 中打开的方法

    44910

    在 SwiftUI 视图中打开 URL 的若干方法

    本文的范例代码是在 Swift Playgrounds 4.1 ( macOS 版本 )中完成的,可在 此处下载[2]。...)打开指定的 URL 将文本中的部分内容变成可点击区域,点击后打开指定的 URL 遗憾的是,1.0 时代的 SwiftUI 还相当稚嫩,没有提供任何原生的方法来应对上述两种场景。...} 而第二种场景实现起来就相当地麻烦,需要包装 UITextView( 或 UILabel )并配合 NSAttributedString 一起来完成,此时 SwiftUI 仅被当作一个布局工具而已。...此时在 Button 中,我们可以直接通过 openURL 来完成在 SwiftUI 1.0 版本中通过调用其他框架 API 才能完成的工作。...视图中打开 URL 的几种方法,不过读者应该也能从中感受到 SwiftUI 三年来的不断进步,相信不久后的 WWDC 2022 会为开发者带来更多的惊喜。

    9.1K31

    AVKit框架详细解析(四) —— 基于AVKit 和 AVFoundation框架的视频流App的构建

    然后,您需要添加一些自定义手势,例如点击打开声音和双击将其更改为 2 倍速度。当您想对事物的工作方式进行非常具体的控制时,最好编写自己的视频视图。 让事情顺利进行是你的工作。...2) 您使用初始值设定项创建 LoopingPlayerUIView 的新实例并返回新实例。 3) SwiftUI 在需要更新底层 UIView 时会调用此方法。 现在,将其留空。...构建并运行以查看您的完整工作剪辑节目! 不幸的是,当最后一个剪辑播放完毕后,视频播放器会变黑。 3....注意:确保首先添加双击侦听器,然后单击。 如果你反过来做,双击监听器将永远不会被调用。 再次构建并运行,您将能够点击和双击来播放剪辑的速度和音量。...,打开一个全屏视频并观看出现在左上角的画中画按钮。

    9.3K10

    Linux和Windows系统常用加固项

    单击【开始】—-【运行】,输入regedit,打开注册表后,单击进入以下路径:【HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\control\TerminalServer...再次打开注册表,找到以下路径: 【HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\control\TerminalServer\WinStations\RDP-Tcp...在域安全策略界面上双击“本地策略”的“安全选项”中“不允许SAM账户的匿名枚举” ? 则会出现“不允许sam账户的匿名枚举的属性”的对话框,勾选“启用”单选框 ?...3.在组策略中设置阻止访问注册表编辑工具 在“运行”输入“gpedit.msc”字符,则进入“组策略”的界面 在组策略的界面中双击“用户配置”的“管理模板”的“系统”的“阻止访问注册表编辑工具” ?...会出现“阻止访问注册表编辑工具的属性”界面,勾选“已启用”单选框 ?

    4K30

    苹果正在为系统级支持 MCP 做准备 | 肘子的 Swift 周报 #0104

    加入 Discord[3]社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。...作者把 UTType 比作“数据护照”,形象地说明了它在数据传输中的作用,并展示了处理 Color 等不可直接编码类型以及利用 isTargeted提供视觉反馈的实用技巧。...作者特别提醒:macOS 只显示第一张截图(iOS 显示前三张),因此顺序至关重要;分析数据时应关注日均值而非总量,并聚焦 App Store Browse 来源,才能更准确评估元数据优化的成效。...这个案例完美展示了 Apple Shortcuts 在专业开发工作流中的潜力——它远不只是个消费级自动化工具。...[1] weekly.fatbobman.com: https://weekly.fatbobman.com [2] 肘子的 Swift 记事本: https://fatbobman.com [3]

    21510

    【一文搞定】Linux、Mac、Windows安装Docker与配置教程!

    一、Windows 安装 1.1 安装与启用 Hyper-V 1.2 安装 WSL 1.3 Docker Desktop 官方下载 1.4 安装Docker Desktop 二、MacOS 安装 2.1...所以我们需要安装WSL,在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入如下命令: wsl --install 然后重启计算机。...Docker Desktop 官方下载地址: https://docs.docker.com/desktop/install/windows-install/ 1.4 安装Docker Desktop 双击.../ 选择你的M芯片或Inter芯片 2.2 安装Docker Desktop 双击即可,将Docker 安装拖过去即可。...三、Mac 和Windows 配置镜像加速 在系统右下角托盘图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Docker Desktop。

    9.5K30

    MacBookPro上macOS安装第三方应用报错解决方案:遇到:“无法打开“XXX”,因为Apple无法检查其是否包含恶意软件 问题如何解决

    MacBook Pro 上 macOS 安装第三方应用报错解决方案 —— 彻底搞定「无法打开“XXX”,因为 Apple 无法检查其是否包含恶意软件」 适用系统:macOS Catalina 10.15...2 Gatekeeper & Notarization 工作机制 组件 作用 Gatekeeper macOS 的强制执行安全策略,默认只允许运行 Mac App Store 或 “已公证的已识别开发者...弹窗会再次出现,但此时多了 “仍要打开” 按钮;点击即可。 系统会把此 App 记为可信,之后双击可直接运行,不再提示。...方法 4 — 临时关闭 Gatekeeper(系统级,安装后务必再打开) sudo spctl --master-disable # 关闭 # 安装并首次运行完第三方 App 后 sudo spctl...5 常见疑难排查清单 症状 可能原因 处理思路 “仍要打开”按钮不出现 距离上次尝试已超 1 小时 重新双击一次 App,刷新按钮计时 右键→打开仍失败 App 被沙箱化损坏或缺失签名 重新下载,或联系开发者更新签名

    3.3K20

    用 Table 在 SwiftUI 下创建表格

    欢迎大家在 Discord 频道[2] 中进行更多地交流 Table 是 SwiftUI 3.0 中为 macOS 平台提供的表格控件,开发者通过它可以快捷地创建可交互的多列表格。...: Bool) 仅用于 macOS,可以设置是否开启行交错背景,便于视觉区分 或许在之后的测试版中,SwiftUI 会扩展更多的样式到 iPadOS 平台 行选择 在 Table 中启用行选择与 List...// 单选 @State var selections: Set = [] // 多选,需要 LocaleInfo 遵循 Hashable 协议 下图为开启多选后的场景: image...如果你在 Xcode 中编写使用 Table 的代码,大概率会碰到自动提示无法工作的情况。甚至还会出现应用程序无法编译,但没有明确的错误提示( 错误发生在 Table 内部)。...另外,由于 Table DSL 的定义并不完整( 缺少类似 Group 的容器 ),目前至多只能支持十列数据( 原因请参阅 ViewBuilder 研究(下) —— 从模仿中学习[3] )。

    5.2K31

    macOS上实现Qt应用程序做文件关联打开

    一、背景介绍 用Qt开发的应用程序要实现文件关联,双击时用默认关联的程序打开文件,在Windows上这个功能非常容易实现。Windows应用程序在安装的时候可以在注册表中写入相关的键值对。...如上述代码所示,接着我们就可以在main函数的argv中获取到文件路径,完成文件的关联打开。但是在macOS上却不是这么做的。...首先macOS上没有类似Windows注册表,不会写入这些信息;其次,macOS上常见的安装包格式pkg也不提供这些功能。那么,在macOS上我们应该怎么来实现这样的功能呢?我们马上来看看。...首先,要实现双击用关联程序打开文件这个功能,要分两个步骤:(1)通过某种方式来声明我们的应用程序支持哪些文档类型;(2)要接收从窗口管理系统传递过来的文件路径。满足了这两点,才能正常实现目标功能。...(2)接收目标文档路径 在macOS上打开一个文档时,macOS Finder不会像Windows Explorer一样将文件名作为关联程序的启动参数。

    2.5K20

    Skip Fuse 现在对独立开发者免费! -- 肘子的 Swift 周报 #0110

    加入 Discord[3]社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。 Skip Fuse现在对独立开发者免费!...即便如此,这一政策仍为 Swift 开发者以近乎零成本的方式进入 Android 市场打开了大门,为他们在这一庞大平台上探索新的可能与收入来源提供了契机。...] Xcode 26 为 Instruments 新增了 SwiftUI 专用的分析工具,可统计视图的更新次数与耗时,并通过 All Updates Summary 与 Cause & Effect Graph...它通过直接读取 iMessage 数据库(chat.db)并结合 AppleScript 实现自动化,因此仅限 macOS 使用,且需要授予应用"完全磁盘访问权限"。...,通过 .yet与 .finished明确控制生命周期 这一模型为构建复杂交互(如“双击 + 拖动”、“圆形绘制”、“自定义笔迹检测”)提供了新的思路。

    14910
    领券