DevLog:2025年7月29日

1、今天的目标是把DoitWith的分组功能加回来,目标是:
1.点击右上角的“+”可以选择创建新Todo、创建新分组
2.创建新Todo时可以选择分组
3.点击左上角“Edit”后,每条Todo右侧的删除按钮左边增加一个编辑按钮,点击弹出编辑界面,类似添加Todo界面,可以选择这条Todo的分组、设置截止日期和重复频率
4.设置中增加分组管理功能,可以删除分组,确认后即删除
2、决定让Cursor分步操作,先实现上面和1和2,Cursor增加了分组颜色设置等细节优化,但存在这些问题:新创建的分组不会出现在Todo列表里,我的需求是 即使目前已有的分组下都没有Todo,也要呈现在Todo列表里;另外新创建的Todo也没有出现在Todo列表里,检查一下是怎么回事;还有,创建完分组或Todo后,ActionSelectionView能否自动消失?目前还需要手动点一下取消才会消失
3、让Cursor修正这些问题之后,继续优化,发现点击左上角“Edit”时,只有General分组下的Todo支持拖动排序,其它分组下的Todo同样需要支持拖动排序,另外设置页面的TODO统计,数字也不对,是不是只统计了General分组下的Todo?然后去掉设置中的Reset to Default Data按钮和功能,我不需要
4、Cursor快速修复了上述问题,发现给Cursor的需求要尽量具体到某个按钮的某个功能,还有就是在付费之后Cursor的效率有明显的提升
5、继续修复一些小问题:点击左上角“Edit”后,我需要暂时隐藏掉Todo条目最左侧的圆圈,可能会让人误解这是多选按钮;另外现在每条Todo在点击完成后都无法撤销,我需要在再次点击时撤销完成状态
6、Cursor快速修复了上述问题,继续测试后发现还有问题,从回收站中恢复的Todo条目,不会回到原本所属的分组,而是到了General分组里,继续让Cursor修复问题,Cursor甚至还给出了“如果原来的分组被删除了,恢复的Todo会添加到General分组作为降级处理”的额外方案
7、从2-6的需求全部完成,接下来继续增加编辑Todo、管理分组的功能,先增加编辑Todo的功能,需求是:点击左上角“Edit”后,每条Todo右侧的删除按钮左边增加一个编辑按钮,点击弹出编辑界面(类似添加Todo的界面)可以在编辑界面修改这条Todo的标题、描述,设置截止日期和重复频率
8、Cursor在修改后仍然存在一些问题,一是编辑、删除、拖动排序三个按钮离的有点近,可以稍微拉大一点间距,防止误触,二是点击编辑按钮弹出了“删除”的弹窗,没有进入编辑界面,关于间距的修复,由于编辑、删除按钮和拖动按钮不属于同一个组件,无法调整边距,在尝试两次后撤销了间距调整操作,第二个问题已经修复完成,但存在首次打开Todo编辑界面立即消失,需要再次打开才能编辑Todo的问题,继续让Cursor修复,多次修改未果,点击编辑按钮会弹出删除的弹窗
9、决定换一种交互形式,去掉每条Todo右侧的编辑和删除按钮,改成长按每条Todo弹出菜单,菜单里包含编辑Todo、删除两个功能,点击编辑Todo进入编辑界面,点击删除弹出弹窗,确认后即删除(Cursor认为这样更加简洁,且符合iOS的设计规范)
10、实现这一需求后,发现首次长按Todo条目、编辑Todo时会弹出一个空白页面,再次编辑Todo时才会弹出完整的编辑界面,继续让Cursor检查并修正该问题,多次修改后解决
11、我发现即使不点击左上角的Edit按钮,也能通过长按和拖动来调整Todo的顺序,可以让Cursor去掉左上角的按钮,以及点击按钮后界面的变化相关代码,但要保留拖动调整Todo顺序的功能,Cursor边修改边检查/修复问题,涉及了TodoView.swift、TodoRowView.swift、GroupTodoRowView三个文件
12、接下来继续优化应用,主要针对分组管理:一是在Todo界面搜索栏下方添加几个按钮,按钮上显示分组的名字,点击可以直达该分组所在位置,创建新分组时自动在添加新按钮(Cursor说这叫“分组导航按钮”);二是需要在设置中增加管理分组功能,可以在这里删除分组,删除后该分组内的Todo自动移动到General分组,先增加第一个功能,增加分组导航栏
13、接下来让Cursor实现管理分组功能,Cursor创建了一个新的GroupManagementView视图来管理分组,可以在设置-管理分组中统一查看分组颜色标识、分组名称、分组内的Todo数量,也能点击删除,删除时会有确认对话框,并告知删除后的Todo会移动到General分组里
14、下一步优化搜索功能,目前的搜索框不是很好用,搜不到部分Todo条目,Cursor对搜索功能进行了优化,输入关键词即可在全部Todo内搜索,快速定位到搜索结果,但是有一个问题:在搜索到不在General分组内的Todo时,会同时显示搜索结果和“No Results”的提示,继续让Cursor优化,解决了这个小问题
15、之后让Cursor修改创建分组和Todo界面的英文,改成中文,Cursor还自动同步检查了编辑Todo界面,之后再让Cursor把设置界面的一些英文改成中文,模拟器测试OK,然后让Cursor结合当前应用的功能刷新了一下README
16、检查一下目前的文件中有没有深色模式相关的代码,Cursor检查后发现的确存在深色模式相关代码,但设置界面中没有对应的选项,于是开始修复,涉及了主应用入口、设置、SplashView、RecycleBinView等文件,并且发现存在两个设置文件SettingsView和SettingView,检查后删掉了SettingsView,测试深色模式可正常启用
17、DoitWith先到这里,回到NoteWith,在Xcode模拟器中运行时出现三处被弃用的语法警告,先让Cursor处理一下,之后对NoteWith的功能进行测试
18、首先是备忘录相关功能,点击创建备忘录按钮或右上角加号后,添加内容并保存,并没有出现在备忘录列表里,需要检查一下原因,多次修改后仍然无果,决定先让Cursor把数据存储方式从Core Data改回UserDefaults,这样可以简化数据管理,避免Core Data的复杂性
19、Cursor删除了8个涉及Core Data的文件,并清理其它文件中对Core Data的引用,创建了一个新的简化项目文件,移除所有Core Data相关的引用(已经自动备份了当前的项目文件),之后果然能够正常保存备忘录了,Cursor还是厉害,Core Data等以后比较熟悉了再切换吧,现在先用着UserDefaults
20、目前格式设置按钮在备忘录详情页标题下方,但选中文字时弹出的剪切、复制等按钮就会把格式设置按钮挡住,继续让Cursor修改:需要把格式设置按钮全都挪到备忘录详情页底部、字数统计栏上方,并且增加删除线、设置文字颜色按钮;删掉右侧的“清空内容”按钮;目前工具栏中的“A”图标对应的是什么功能?点击之后会卡死
21、Cursor在修改之后,格式设置功能还是有问题,决定让Cursor修改这些:备忘录详情的格式设置还是有问题,选中文字后,可以设置格式,但再次点击格式按钮后不会取消格式;另外在备忘录列表页,在某条备忘录的空白位置点击就会被标记星号,我的需求是只有点击到星号时才会被标记星号;还有,移除备忘录详情页标题旁边的分享和删除按钮,我暂时不需要;在设置中添加一个回收站功能,管理我删除的备忘录,可以在回收站中恢复已删除的备忘录,这些需求均被Cursor快速完成
22、继续测试并让Cursor优化AI对话页,测试发现在AI对话页面点击创建AI对话按钮和右上角的加号之后,都只会创建新对话,但不直接打开新对话,点击对话列表中的条目也无法打开;另外在设置中填上API密钥、API地址、模型名称后点击右上角保存,不会提示已保存,也不会返回到其它界面,让Cursor一并检查、修复完成,创建新对话后对以弹窗形式打开对话,且对话内容互相独立,设置模型信息之后点击保存会提示已保存,至此NoteWith的基本功能已经OK
23、然后让Cursor删掉了设置页的版本号、项目主页等不重要的信息,以后再继续测试、优化,包括AI对话和备忘录TAB调换顺序,增加深色模式,优化设置界面的交互逻辑(把AI模型相关的设置改成弹窗),“设置”改成“我的”等等

发表回复