فهرست منبع

[右键] - 字符串长度显示

liujiajie 1 سال پیش
والد
کامیت
e9638423e8

+ 44 - 4
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift

@@ -312,12 +312,44 @@ extension KMMainViewController {
         stypItem.submenu = NSSharingServicePicker.menu(forSharingItems: [string], subjectContext: "", withTarget: self, selector: #selector(shareFromService), serviceDelegate: nil)
         return stypItem
     }
+
+    func numberOfChars(_ str: String) -> (num: Int, indexN: Int) {
+        var number = 0
+        var indexN = 0
+        
+        guard str.count > 0 else {return (0, 0)}
+        
+        for i in 0...str.count - 1 {
+            let c: unichar = (str as NSString).character(at: i)
+            
+            if (c >= 0x4E00) {
+                number += 2
+            }else {
+                number += 1
+            }
+            if number > 56{
+                indexN = i
+                number = 100
+                break
+            }
+        }
+        return (number, indexN)
+    }
+    
     func setLookUpStype() -> NSMenuItem {
-        let str = String(format: "Look Up %@", listView?.currentSelection?.string() ?? "")
-        let stypItem = NSMenuItem(title: NSLocalizedString(str, comment: ""), action: #selector(lookUpAction), target: self)
+        let str = listView?.currentSelection?.string() ?? ""//String(format: "Look Up %@", listView?.currentSelection?.string() ?? "")
+        let dic = numberOfChars(str)
+        
+        var newStr = str
+        if dic.num == 100{
+            newStr = str.prefix(dic.indexN) + "..."
+        }
+        newStr = "Look Up " + newStr
+        let stypItem = NSMenuItem(title: NSLocalizedString(newStr, comment: ""), action: #selector(lookUpAction), target: self)
         
         return stypItem
     }
+    
     func setSearchBaiduStype() -> NSMenuItem {
         let stypItem = NSMenuItem(title: NSLocalizedString("Search with Baidu", comment: ""), action: #selector(searchBaiduAction), target: self)
         
@@ -380,8 +412,16 @@ extension KMMainViewController {
     }
     
     func setTranslateStype() -> NSMenuItem {
-        let str = String(format: "Translate %@", listView?.currentSelection?.string() ?? "")
-        let stypItem = NSMenuItem(title: NSLocalizedString(str, comment: ""), action: #selector(TranslateItemAction), target: self)
+        let str = listView?.currentSelection?.string() ?? ""//String(format: "Translate %@", listView?.currentSelection?.string() ?? "")
+        let dic = numberOfChars(str)
+        
+        var newStr = str
+        if dic.num == 100{
+            newStr = str.prefix(dic.indexN) + "..."
+        }
+        newStr = "Translate " + newStr
+
+        let stypItem = NSMenuItem(title: NSLocalizedString(newStr, comment: ""), action: #selector(TranslateItemAction), target: self)
         
         return stypItem
     }