@@ -27,31 +27,49 @@ import NativeAPI
2727 print ( " ✅ Tray icon configured " )
2828
2929 // Create context menu for tray icon
30- let contextMenu = Menu ( )
30+ guard let contextMenu = Menu . create ( ) else {
31+ print ( " ❌ Failed to create context menu " )
32+ return
33+ }
3134
3235 // Add "Show Window" menu item
33- let showItem = contextMenu. addItem ( text: " 显示窗口 " ) { event in
36+ guard let showItem = MenuItem . create ( " 显示窗口 " ) else {
37+ print ( " ❌ Failed to create show item " )
38+ return
39+ }
40+ contextMenu. addItem ( showItem)
41+ showItem. onClicked { menuItem in
3442 print ( " 📱 显示窗口 - 菜单项点击成功! " )
35- print ( " 事件详情 : ID= \( event . itemId ) , Text=' \( event . itemText ) ' " )
43+ print ( " 菜单项详情 : ID= \( menuItem . id ) , Text=' \( menuItem . getText ( ) ) ' " )
3644 }
3745 print ( " ✅ 创建'显示窗口'菜单项,ID: \( showItem. id) " )
3846
3947 // Add separator
4048 contextMenu. addSeparator ( )
4149
4250 // Add "About" menu item
43- let aboutItem = contextMenu. addItem ( text: " 关于 " ) { event in
51+ guard let aboutItem = MenuItem . create ( " 关于 " ) else {
52+ print ( " ❌ Failed to create about item " )
53+ return
54+ }
55+ contextMenu. addItem ( aboutItem)
56+ aboutItem. onClicked { menuItem in
4457 print ( " ℹ️ 关于菜单项点击成功! " )
4558 print ( " NativeAPI Demo v1.0 " )
46- print ( " 事件详情 : ID= \( event . itemId ) , Text=' \( event . itemText ) ' " )
59+ print ( " 菜单项详情 : ID= \( menuItem . id ) , Text=' \( menuItem . getText ( ) ) ' " )
4760 }
4861 print ( " ✅ 创建'关于'菜单项,ID: \( aboutItem. id) " )
4962
5063 // Add "Settings" menu item
51- let settingsItem = contextMenu. addItem ( text: " 设置 " ) { event in
64+ guard let settingsItem = MenuItem . create ( " 设置 " ) else {
65+ print ( " ❌ Failed to create settings item " )
66+ return
67+ }
68+ contextMenu. addItem ( settingsItem)
69+ settingsItem. onClicked { menuItem in
5270 print ( " ⚙️ 设置菜单项点击成功! " )
5371 print ( " 打开设置面板 " )
54- print ( " 事件详情 : ID= \( event . itemId ) , Text=' \( event . itemText ) ' " )
72+ print ( " 菜单项详情 : ID= \( menuItem . id ) , Text=' \( menuItem . getText ( ) ) ' " )
5573 }
5674 print ( " ✅ 创建'设置'菜单项,ID: \( settingsItem. id) " )
5775
@@ -62,25 +80,35 @@ import NativeAPI
6280 print ( " 📝 添加 Checkbox 菜单项演示... " )
6381
6482 // First create the checkbox items without event handlers
65- let showToolbarItem = contextMenu. addCheckboxItem ( text: " 显示工具栏 " , checked: true )
66- print ( " ✅ 创建复选框'显示工具栏',ID: \( showToolbarItem. id) , 初始状态: \( showToolbarItem. isChecked) " )
83+ guard let showToolbarItem = MenuItem . create ( " 显示工具栏 " , type: . checkbox) else {
84+ print ( " ❌ Failed to create toolbar checkbox " )
85+ return
86+ }
87+ showToolbarItem. setChecked ( true )
88+ contextMenu. addItem ( showToolbarItem)
89+ print ( " ✅ 创建复选框'显示工具栏',ID: \( showToolbarItem. id) , 初始状态: \( showToolbarItem. isChecked ( ) ) " )
6790
68- let autoSaveItem = contextMenu. addCheckboxItem ( text: " 自动保存 " , checked: false )
69- print ( " ✅ 创建复选框'自动保存',ID: \( autoSaveItem. id) , 初始状态: \( autoSaveItem. isChecked) " )
91+ guard let autoSaveItem = MenuItem . create ( " 自动保存 " , type: . checkbox) else {
92+ print ( " ❌ Failed to create autosave checkbox " )
93+ return
94+ }
95+ autoSaveItem. setChecked ( false )
96+ contextMenu. addItem ( autoSaveItem)
97+ print ( " ✅ 创建复选框'自动保存',ID: \( autoSaveItem. id) , 初始状态: \( autoSaveItem. isChecked ( ) ) " )
7098
7199 // Now add event handlers after the variables are declared
72- showToolbarItem. onClick { event in
73- let isChecked = showToolbarItem . isChecked
100+ showToolbarItem. onClicked { menuItem in
101+ let isChecked = menuItem . isChecked ( )
74102 print ( " ☑️ 工具栏显示状态切换: \( isChecked) " )
75103 print ( " 工具栏现在 \( isChecked ? " 显示 " : " 隐藏 " ) " )
76- print ( " 事件详情 : ID= \( event . itemId ) , Text=' \( event . itemText ) ' " )
104+ print ( " 菜单项详情 : ID= \( menuItem . id ) , Text=' \( menuItem . getText ( ) ) ' " )
77105 }
78106
79- autoSaveItem. onClick { event in
80- let isChecked = autoSaveItem . isChecked
107+ autoSaveItem. onClicked { menuItem in
108+ let isChecked = menuItem . isChecked ( )
81109 print ( " ☑️ 自动保存状态切换: \( isChecked) " )
82110 print ( " 自动保存功能 \( isChecked ? " 已启用 " : " 已禁用 " ) " )
83- print ( " 事件详情 : ID= \( event . itemId ) , Text=' \( event . itemText ) ' " )
111+ print ( " 菜单项详情 : ID= \( menuItem . id ) , Text=' \( menuItem . getText ( ) ) ' " )
84112 }
85113
86114 // Add separator
@@ -90,42 +118,68 @@ import NativeAPI
90118 print ( " 📝 添加 Radio 按钮组演示... " )
91119
92120 // First create the radio items without event handlers
93- let compactViewItem = contextMenu. addRadioItem ( text: " 紧凑视图 " , groupId: 1 , checked: false )
94- print ( " ✅ 创建单选按钮'紧凑视图',ID: \( compactViewItem. id) , 组: 1, 选中: \( compactViewItem. isChecked) " )
121+ guard let compactViewItem = MenuItem . create ( " 紧凑视图 " , type: . radio) else {
122+ print ( " ❌ Failed to create compact view radio " )
123+ return
124+ }
125+ compactViewItem. setRadioGroup ( 1 )
126+ compactViewItem. setChecked ( false )
127+ contextMenu. addItem ( compactViewItem)
128+ print ( " ✅ 创建单选按钮'紧凑视图',ID: \( compactViewItem. id) , 组: 1, 选中: \( compactViewItem. isChecked ( ) ) " )
95129
96- let normalViewItem = contextMenu. addRadioItem ( text: " 普通视图 " , groupId: 1 , checked: true )
97- print ( " ✅ 创建单选按钮'普通视图',ID: \( normalViewItem. id) , 组: 1, 选中: \( normalViewItem. isChecked) " )
130+ guard let normalViewItem = MenuItem . create ( " 普通视图 " , type: . radio) else {
131+ print ( " ❌ Failed to create normal view radio " )
132+ return
133+ }
134+ normalViewItem. setRadioGroup ( 1 )
135+ normalViewItem. setChecked ( true )
136+ contextMenu. addItem ( normalViewItem)
137+ print ( " ✅ 创建单选按钮'普通视图',ID: \( normalViewItem. id) , 组: 1, 选中: \( normalViewItem. isChecked ( ) ) " )
98138
99- let detailedViewItem = contextMenu. addRadioItem ( text: " 详细视图 " , groupId: 1 , checked: false )
100- print ( " ✅ 创建单选按钮'详细视图',ID: \( detailedViewItem. id) , 组: 1, 选中: \( detailedViewItem. isChecked) " )
139+ guard let detailedViewItem = MenuItem . create ( " 详细视图 " , type: . radio) else {
140+ print ( " ❌ Failed to create detailed view radio " )
141+ return
142+ }
143+ detailedViewItem. setRadioGroup ( 1 )
144+ detailedViewItem. setChecked ( false )
145+ contextMenu. addItem ( detailedViewItem)
146+ print ( " ✅ 创建单选按钮'详细视图',ID: \( detailedViewItem. id) , 组: 1, 选中: \( detailedViewItem. isChecked ( ) ) " )
101147
102148 // Now add event handlers after the variables are declared
103- compactViewItem. onClick { event in
149+ compactViewItem. onClicked { menuItem in
150+ menuItem. setState ( . checked)
104151 print ( " 🔘 视图模式切换为: 紧凑视图 " )
105152 print ( " Radio 组 ID: 1 " )
106- print ( " 事件详情 : ID= \( event . itemId ) , Text=' \( event . itemText ) ' " )
153+ print ( " 菜单项详情 : ID= \( menuItem . id ) , Text=' \( menuItem . getText ( ) ) ' " )
107154 }
108155
109- normalViewItem. onClick { event in
156+ normalViewItem. onClicked { menuItem in
157+ menuItem. setState ( . checked)
110158 print ( " 🔘 视图模式切换为: 普通视图 " )
111159 print ( " Radio 组 ID: 1 " )
112- print ( " 事件详情 : ID= \( event . itemId ) , Text=' \( event . itemText ) ' " )
160+ print ( " 菜单项详情 : ID= \( menuItem . id ) , Text=' \( menuItem . getText ( ) ) ' " )
113161 }
114162
115- detailedViewItem. onClick { event in
163+ detailedViewItem. onClicked { menuItem in
164+ menuItem. setState ( . checked)
116165 print ( " 🔘 视图模式切换为: 详细视图 " )
117166 print ( " Radio 组 ID: 1 " )
118- print ( " 事件详情 : ID= \( event . itemId ) , Text=' \( event . itemText ) ' " )
167+ print ( " 菜单项详情 : ID= \( menuItem . id ) , Text=' \( menuItem . getText ( ) ) ' " )
119168 }
120169
121170 // Add separator
122171 contextMenu. addSeparator ( )
123172
124173 // Add "Exit" menu item
125- let exitItem = contextMenu. addItem ( text: " 退出 " ) { event in
174+ guard let exitItem = MenuItem . create ( " 退出 " ) else {
175+ print ( " ❌ Failed to create exit item " )
176+ return
177+ }
178+ contextMenu. addItem ( exitItem)
179+ exitItem. onClicked { menuItem in
126180 print ( " 👋 退出菜单项点击成功! " )
127181 print ( " 退出应用程序 " )
128- print ( " 事件详情 : ID= \( event . itemId ) , Text=' \( event . itemText ) ' " )
182+ print ( " 菜单项详情 : ID= \( menuItem . id ) , Text=' \( menuItem . getText ( ) ) ' " )
129183 exit ( 0 )
130184 }
131185 print ( " ✅ 创建'退出'菜单项,ID: \( exitItem. id) " )
@@ -158,9 +212,8 @@ import NativeAPI
158212 print ( " 💡 Tray icon is visible: \( trayIcon. isVisible) " )
159213 print ( " 💡 右键点击托盘图标可查看菜单 " )
160214
161- if let bounds = trayIcon. bounds {
162- print ( " 💡 Tray icon bounds: ( \( bounds. x) , \( bounds. y) , \( bounds. width) x \( bounds. height) ) " )
163- }
215+ let bounds = trayIcon. bounds
216+ print ( " 💡 Tray icon bounds: ( \( bounds. x) , \( bounds. y) , \( bounds. width) x \( bounds. height) ) " )
164217 } else {
165218 print ( " ❌ Failed to show tray icon " )
166219 }
0 commit comments