Browse Source

AI - AI翻译选取语言TableView选中、悬浮效果调整

wanjun 1 year ago
parent
commit
c8e2c4db99

+ 16 - 2
PDF Office/PDF Master/Class/Home/ViewController/KMAILanguagePopVC.swift

@@ -15,6 +15,7 @@ class KMAILanguagePopTableviewCell: NSTableCellView {
     @IBOutlet weak var languageLabel: NSTextField!
     var selectUrls: [URL] = []
     var isSelect: Bool = false
+    var selectString: String = ""
 
     // MARK: Init
     
@@ -45,7 +46,8 @@ class KMAILanguagePopTableviewCell: NSTableCellView {
     
     // MARK: Private Methods
     
-    func initializeUI(_ url: URL) -> Void {
+    func refreshAIUI() -> Void {
+        self.mainBox.fillColor = .clear
     }
      
     // MARK: Action
@@ -59,6 +61,7 @@ class KMAILanguagePopVC: NSViewController, NSTableViewDelegate, NSTableViewDataS
     
     var languages: [String] = []
     var downCallback: aiLanguagePopCellViewDownCallback?
+    var selectString: String = ""
 
     func initWithPopViewDataArr(_ popViewDataArr: [String]) -> Self {
         self.languages = popViewDataArr
@@ -69,7 +72,7 @@ class KMAILanguagePopVC: NSViewController, NSTableViewDelegate, NSTableViewDataS
         super.viewDidLoad()
         // Do view setup here.
         
-        
+        NotificationCenter.default.addObserver(self, selector: #selector(tableViewDidScroll(_:)), name: NSScrollView.didLiveScrollNotification, object: tableView.enclosingScrollView)
     }
     
     override func viewDidAppear() {
@@ -88,6 +91,13 @@ class KMAILanguagePopVC: NSViewController, NSTableViewDelegate, NSTableViewDataS
         let identifier = tableColumn?.identifier
         let cellView: KMAILanguagePopTableviewCell = tableView.makeView(withIdentifier:identifier!, owner: self) as! KMAILanguagePopTableviewCell
         cellView.languageLabel.stringValue = language
+        cellView.refreshAIUI()
+        if language == self.selectString {
+            cellView.mainBox.fillColor = NSColor(hex: "#0A82FF", alpha: 0.75)
+            cellView.isSelect = true
+        } else {
+            cellView.isSelect = false
+        }
         return cellView
     }
     
@@ -103,6 +113,10 @@ class KMAILanguagePopVC: NSViewController, NSTableViewDelegate, NSTableViewDataS
         }
     }
     
+    @objc func tableViewDidScroll(_ notification: Notification) {
+        self.tableView.reloadData()
+    }
+    
     // MARK: NSTableViewDataSource
     
     func numberOfRows(in tableView: NSTableView) -> Int {

+ 5 - 0
PDF Office/PDF Master/Class/Home/ViewController/KMAITranslationVC.swift

@@ -395,6 +395,11 @@ class KMAITranslationVC: NSViewController {
         createFilePopover.animates = true
         createFilePopover.behavior = .semitransient
         createFilePopover.setValue(true, forKey: "shouldHideAnchor")
+        if isFromLanguage {
+            vc.selectString = self.automaticLabel.stringValue
+        } else {
+            vc.selectString = self.languageLabel.stringValue
+        }
 
         vc.downCallback = { [unowned self] (language: String) -> Void in
             createFilePopover.close()

+ 5 - 0
PDF Office/PDF Master/Class/Home/WindowController/KMAITranslationConfirmWindowController.swift

@@ -203,6 +203,11 @@ class KMAITranslationConfirmWindowController: NSWindowController {
         createFilePopover.animates = true
         createFilePopover.behavior = .semitransient
         createFilePopover.setValue(true, forKey: "shouldHideAnchor")
+        if isFromLanguage {
+            vc.selectString = self.fromLabel.stringValue
+        } else {
+            vc.selectString = self.toLabel.stringValue
+        }
 
         vc.downCallback = { [unowned self] (language: String) -> Void in
             createFilePopover.close()

+ 6 - 1
PDF Office/PDF Master/Class/Home/WindowController/KMAITranslationWindowController.swift

@@ -313,7 +313,12 @@ class KMAITranslationWindowController: NSWindowController {
         createFilePopover.animates = true
         createFilePopover.behavior = .semitransient
         createFilePopover.setValue(true, forKey: "shouldHideAnchor")
-
+        if isFromLanguage {
+            vc.selectString = self.fromLabel.stringValue
+        } else {
+            vc.selectString = self.toLabel.stringValue
+        }
+        
         vc.downCallback = { [unowned self] (language: String) -> Void in
             createFilePopover.close()
             if isFromLanguage {