在開發落格輸入法 macOS 的時候,我遇到了一個比較奇葩的問題,這個問題一直困擾我到現在——當有些地方需要垂直居中顯示一排文字的時候,如何讓這些字真正的“居中”?
乍看之下這似乎沒什麼道理,垂直居中嘛……等等,macOS 上的 [crayon-6756ff5f7c4333[……]
蘋果新出的用於代替OC的高級編程語言!
在開發落格輸入法 macOS 的時候,我遇到了一個比較奇葩的問題,這個問題一直困擾我到現在——當有些地方需要垂直居中顯示一排文字的時候,如何讓這些字真正的“居中”?
乍看之下這似乎沒什麼道理,垂直居中嘛……等等,macOS 上的 [crayon-6756ff5f7c4333[……]
在使用 Swift 進行開發落格輸入法時,我遇到了一個很有意思的問題——去重。
眾所周知,輸入法的候選在計算出來後總會有可能是重複的選項(比如碼表和詞庫中都有某個詞,也許他們編碼不同,但字是一樣的之類),這時候就需要去重,但又要保持候選的先後順序不變。
如果你去網上找,那麼[……]
在兩年前,我曾寫過一篇名為《ios 為視障用戶支持 VoiceOver》的文章,裡邊主要介紹了 iOS 端該如何為 VoiceOver 進行必要的支持,後來我又開發了 macOS 端的落格輸入法,但很遺憾由於 macOS 自身系統 bug,第三方輸入法根本無法獲得 VoiceOver 焦點(主要是[……]
廢話不多說,直接上代碼。
得到:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// 创建一个会话,这个会话可以复用 let session = URLSession(configuration: .default) // 设置URL let url = "http://127.0.0.1/api/" var UrlRequest = URLRequest(url: URL(string: url)!) // 创建一个网络任务 let task = session.dataTask(with: UrlRequest) {(data, response, error) in do { // 返回的是一个json,将返回的json转成字典r let r = try JSONSerialization.jsonObject(with: data!, options: []) as! NSDictionary print(r) } catch { // 如果连接失败就... print("无法连接到服务器") return } } // 运行此任务 task.resume() |
POST:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// 这个session可以使用刚才创建的。 let session = URLSession(configuration: .default) // 设置URL let url = "http://127.0.0.1/api/" var request = URLRequest(url: URL(string: url)!) request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") request.httpMethod = "POST" // 设置要post的内容,字典格式 let postData = ["email":"user@xxx.com","password":"123456"] let postString = postData.compactMap({ (key, value) -> String in return "\(key)=\(value)" }).joined(separator: "&") request.httpBody = postString.data(using: .utf8) // 后面不解释了,和GET的注释一样 let task = session.dataTask(with: request) {(data, response, error) in do { let r = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSDictionary print(r) } catch { print("无法连接到服务器") return } } task.resume() |
[……]
今天學員群裡有人提了這麼一個問題,為什麼把特性的字典類型作為泛型類型約束的時候,就必然報錯?
1 |
inheritance from non-protocol, non-class type 'Dictionary<String, Any>' |
顯然,說的很明確了,“你不能從一個非協議、非類的類型繼承”。顯然,字典是個泛型結構體……
那麼解決思路也很明確了,創建一個[……]
在開發落格輸入法 macOS 的過程當中,我一直被一個奇怪的問題所困擾——文本模糊。
無論我怎樣調試,落格輸入法的候選文字都無法達到原生文字的那樣清晰和銳利。在請教了大神之後,得到的活久見經驗是——上游次像素渲染 錯誤。
在很多平台都有類似問題,MACOS[……]
在 iOS 10 以後,iOS 使用了全新的 UserNotifications 作為通知 API,這允許開發者使用 圖片、視頻、聲音 等富媒體作為通知內容,同時進一步地,你還可以使用 通知內容防爆[……]