这个创建笔记的按钮 ![[Pasted image 20240321115340.png]] 逻辑入口在这里; 继承自垂直布局,有一个常量字符串Key,是以类本体命名的; 构造函数中,垂直布局样式,选择box,创建一个按钮界面,调用工具类的PushCommand方法,注册点击的功能,是打开一个NoteEditorView编辑界面类,布局上,也会添加到自身Parent父物体上; ![[Pasted image 20240321115401.png]] 构造函数中,还会注册一个全局事件,key也就是自身类名的key,上述已经完成赋值; 事件系统通过这个全局事件,控制界面的打开和隐藏; ![[Pasted image 20240321115856.png]] 复习一下,整个系统的初始化入口,是这里,通过CreateViewController接口,创建一个TodoListController界面控制器; ![[Pasted image 20240321120027.png]] 跳转过去,这里就已经,完成了,创建笔记界面类,NoteListView的实例化构造 ![[Pasted image 20240321120135.png]] 对于显隐界面,前面注册了事件系统; 这里就是,触发点击跳转逻辑 ![[Pasted image 20240321120259.png]] 界面,点击第二个,然后切换回第一个 ![[Pasted image 20240321120357.png]] 打断点,如预期,触发事件逻辑 ![[Pasted image 20240321120431.png]] 这里展示的是,已经保存下来的,Note笔记列表 ![[Pasted image 20240321121249.png]] 逻辑上,这里是遍历数据模型的Notes笔记容器,然后实例化出来 ![[Pasted image 20240321121514.png]] 其中的每个单一笔记,对应的逻辑; 使用编辑按钮,调用笔记的Content文本显示,还有编辑对应的,步骤进程OpenProcessWindow; 其余的,就是设置宽高颜色样式; ![[Pasted image 20240321121636.png]] 还有删除按钮的逻辑,也是调用模型管理类的RemoveNote接口,移除笔记即可; ![[Pasted image 20240321122219.png]] 传参贴图名称,就是调用对应的资源加载接口,完成图标加载 ![[Pasted image 20240321124341.png]] ![[Pasted image 20240321124535.png]] 这里的按钮,对应的,OpenProcessWindow逻辑,比较复杂,是问题和选择的逻辑框架的应用 ![[Pasted image 20240321125843.png]] 表现 ![[Pasted image 20240321125946.png]] 对应逻辑: ![[Pasted image 20240321130018.png]] 一步一步拆解这部分逻辑; 这是问题的基类,是由问题进程OnProcess和对应选项OnChoice构成; ![[Pasted image 20240321130106.png]] 再整一个问题容器基类,包含开始问题的声明,是调用了问题界面类; 还有获取选择的函数接口; ![[Pasted image 20240321130216.png]] 问题界面类,继承自垂直布局,问题基类; 构造函数,是垂直布局的添加; Title标题,Content问题 主体文本内容; ![[Pasted image 20240321130314.png]] TextArea输入文本区域; Menu菜单选择,创建一个按钮,触发进程逻辑; ![[Pasted image 20240321131501.png]] RepeatSelfMenu接口,是重复当前窗体,只触发Action事件逻辑; Choice选择接口,使用按钮类,触发选择的Action事件,再触发字符事件mOnChoice,后续构建问题和旋转的时候,是用字符串构建这个 mOnChoice; ![[Pasted image 20240321132321.png]] ![[Pasted image 20240321132024.png]] 结束函数,就是直接返回获取器; 还有,进程和选择的,赋值函数; ![[Pasted image 20240321132450.png]] 问题队列类,ProcessSystem是统一管理进程的系统类,后面会解析; 获取的方法接口,也是源自ProcessSystem; 添加选择,就是直接new实例化一个Choice就好; ![[Pasted image 20240321132713.png]] 处理问题,就是从问题队列容器,通过Dequeue方法,拿一个问题出来,调用Show去处理即可; 如果队列容器总量为0,就判断为完成,触发mOnFinished完成的Action事件回调函数; OnFinish就是设定完成回调; ![[Pasted image 20240321133002.png]] 往队列容器,添加问题、选择的接口; Process就是触发,处理问题的Next相关逻辑; ![[Pasted image 20240321133255.png]]