这个创建笔记的按钮
![[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]]