Jason

独立开发,自由职业


  • 分类

  • 友链

  • 关于

  • 搜索

0129 - SwiftUI for macOS 监听键盘整件的几种方式

发表于 2024-01-29 | 分类于 每天写一点
  1. View.onKeyPress. 理论上,这是最合适的。但实际用下来,发现并不能识别比如 upArrow/downArrow 这些特殊的 Key. 虽然看起来可以在代码中指定这些 KeyEquivalent,但实际上并不工作。

  2. View.onAppear { NSEvent.addLocalMonitorForEvents }. 这个方法的问题是,如果多个 View 同时保活,则会被调用多次。如果使用类似单例的方式,又会丢失唤醒整件的上下文信息。

  3. Button.keyboardShortcut. 创建一个 Button 并隐藏起来,同时支持快捷键唤醒。目前来看,这是最能支持 View 级快捷键的方式。但使用隐藏 View 的方式不优雅。且如果是 List 中每个 View 都增加一堆 Button 来实现一系列快捷键,想想也是很浪费资源的做法。并且,隐藏后 .delete 就不能响应了,目前不知道其他快捷键是否有类似的问题。

  4. 通过 Commands menu 中的快捷键,本质还是 Button 的快捷键。但这失去了上下文关联,需要再通过 Context 之类的方法中转信息。

哎,目前还没找到最合适的方式。

0128 - iDone 初步完成页面框架

发表于 2024-01-28 | 分类于 每天写一点

基本实现 Project、Tag、Filter 的无限层级显示,形成基本的页面框架。

不过,问题还是很多。比如,可能是数据绑定使用不当,即使数量量不大时,页面切换比较弱卡顿,导致添加后的任务显示不出来、删除任务后也不能正确切换到相邻的任务。

并且,还没搞定页面的事件处理,网上搜索也没找到合适的答案。目前,暂用隐藏 Button 的方式实现。NavigationView 多页面的 Life cycle,比预想的要复杂。多页面切换时,多个页面是同时保活的,但页面自己并不知道,当前是否在最前。

总之,问题还挺多。

0127 - 重拾 App 开发

发表于 2024-01-27 | 分类于 每天写一点

好久没做 App 开发,拾起来有点难。

这次拾起来,一段时间不准备放下了。

0126 - SwiftData 中的一个坑

发表于 2024-01-26 | 分类于 每天写一点

被 SwiftData 一个小问题搞了。

我在 @Model 中定义了 isDeleted 属性,调试发现死活更新不了。

折腾了半天,偶然发现原来 PersistentModel 本身就 isDeleted 属性,被官方占用了。而我自己定义相同名字的属性,编译、运行啥的,什么错也没有。但实际上,完全不是自己预想的那么回事。

得,又踩一坑。

0125 - App 出海宣传渠道

发表于 2024-01-25 | 分类于 每天写一点

App 出海,可以考虑这些宣传渠道:

  • Product hunt
  • TikTok
  • Hacker News
  • Reddit
  • Twitter
  • Instagram
1…373839…626
Jason

Jason

记录一位独立开发者的精进之路,分享自由职业者的生存方式。

3129 日志
9 分类
5 标签
RSS
GitHub Twitter Weibo
Links
  • Toolinbox
© 2011 - 2025 Jason 浙ICP备16002197号