From 965008fb7fc753578bf34cbd729e7fac726e6401 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Fri, 9 Feb 2024 20:02:22 +0800 Subject: [PATCH] TDKCandidates // Refactor context menu items. --- .../VwrCandidateTDK_Appkit.swift | 36 +++++++------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Appkit.swift b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Appkit.swift index d1ae1006..6c193d79 100644 --- a/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Appkit.swift +++ b/Packages/vChewing_CandidateWindow/Sources/CandidateWindow/TDKCandidates/VwrCandidateTDK_Appkit.swift @@ -7,6 +7,7 @@ // requirements defined in MIT License. import AppKit +import CocoaExtension import Shared /// 田所選字窗的 AppKit 简单版本,繪製效率不受 SwiftUI 的限制。 @@ -151,30 +152,17 @@ public extension VwrCandidateTDKAppKit { private extension VwrCandidateTDKAppKit { private func prepareMenu() { let newMenu = NSMenu() - let boostMenuItem = NSMenuItem( - title: "↑ \(clickedCell.displayedText)", - action: #selector(menuActionOfBoosting(_:)), - keyEquivalent: "" - ) - boostMenuItem.target = self - newMenu.addItem(boostMenuItem) - - let nerfMenuItem = NSMenuItem( - title: "↓ \(clickedCell.displayedText)", - action: #selector(menuActionOfNerfing(_:)), - keyEquivalent: "" - ) - nerfMenuItem.target = self - newMenu.addItem(nerfMenuItem) - - if thePool.isFilterable(target: clickedCell.index) { - let filterMenuItem = NSMenuItem( - title: "✖︎ \(clickedCell.displayedText)", - action: #selector(menuActionOfFiltering(_:)), - keyEquivalent: "" - ) - filterMenuItem.target = self - newMenu.addItem(filterMenuItem) + newMenu.appendItems(self) { + NSMenu.Item( + verbatim: "↑ \(clickedCell.displayedText)" + )?.act(#selector(menuActionOfBoosting(_:))) + NSMenu.Item( + verbatim: "↓ \(clickedCell.displayedText)" + )?.act(#selector(menuActionOfNerfing(_:))) + NSMenu.Item( + verbatim: "✖︎ \(clickedCell.displayedText)" + )?.act(#selector(menuActionOfFiltering(_:))) + .nulled(!thePool.isFilterable(target: clickedCell.index)) } theMenu = newMenu