Tailscale 在連接您與所有裝置時,應該幾乎是隱形的。但在某些 MacBook 上,有一段時間它可能變得太過隱形。我們為此提供了兩種解決方案:一種小巧且有點奇特,另一種則非常實用,現已在 macOS 上推出。
這個小巧且有點奇特的解決方案,對於絕大多數 Mac 上的 Tailscale 使用者來說,可能很快就會成為過去。我在此記錄下來:希望能幫助其他開發者,標記這個時刻,並低調地炫耀我們視窗化的 macOS 介面現已普遍可用。
所以,這就是我們遇到的 Tailscale 圖示滑入黑暗的問題、它的簡易解決方法,以及我們更完善的解決方案。
在 macOS 上推出時,Tailscale 是一個命令列工具和一個選單列工具。有些 MacBook,從 2021 年的 MacBook Pro 機型開始,在顯示器頂部中間有一個瀏海。根據有多少其他帶有選單列圖示的應用程式正在運行,Tailscale 應用程式的圖示可能會隱藏在該瀏海中。
蘋果公司,一個傳統上偏好簡單功能而非複雜設定的公司,並不為使用者或開發者提供擺脫黑暗的途徑。如果選單列圖示多於瀏海右側的空間,選單列項目就會消失在瀏海的虛空中。如果您看不到它,就無法點擊它。沒有給使用者的通知,沒有溢出區,也沒有重新排列選單列項目的選項。
截至本文撰寫時,蘋果公司提供了一些間接的解決方法,例如將更多自己的系統圖示推入重新設計的「控制中心」,並提供一個有些笨拙的「縮放以適應相機下方」選項。像 ICE 和 Bartender 這樣的第三方選單列管理應用程式可以提供幫助,但它們會增加複雜性和開銷。
一位不願透露姓名的 Tailscale 工程師表示:「我們無法控制選單列中的項目渲染位置。你只會說『我想要成為一個選單列應用程式』。他們把它塞上去,就這樣,你最終會出現在你該出現的地方。」
鑑於這種「存在或不存在」的行為,在瀏海 MacBook 推出後,當他們的 Tailscale 圖示消失在中螢幕距離時,Tailscale 開發人員收到了許多使用者回報的錯誤。該工程師說:「他們會說,『實際上,我找不到我的 Tailscale 了。它不見了。它沒有啟動。』我們說,『不,它在那裡,它只是藏在瀏海後面。』但我們有點厭倦了。」
Mac 選單列圖示可能不知道它們被困在無像素的幻影區域內,但它們可以回報有東西在阻擋它們。利用 `occlusionState` 的數據,Tailscale 應用程式可以看到它的圖示處於選單列的中間困境。
雖然它無法移動,但它可以發聲。具體來說,一個彈出訊息可以這樣說:
這個友善的警告絕非完美。瀏海警告可能會被其他顯示器的小問題意外觸發,例如打開和關閉 MacBook 的蓋子、在顯示器之間移動,或兩者結合。但它在一段時間內幫助解決了「我的 Tailscale 設定在哪裡?」的問題。
蘋果公司當然可以做出一些改變來防止這個問題的發生。系統可以阻止選單列圖示在瀏海區域渲染。溢出機制可以將原本會掉入負瀏海區域的圖示堆疊起來。或者開發者可以獲得更多關於圖示瀏海狀態的資訊和工具。
在此期間,讓我們看看讓我們的應用程式知道在隱藏時應該發出一些聲音的 Swift 程式碼。對於新的視窗化應用程式來說,這應該是不必要的——除非你在視窗化客戶端選項中啟用「隱藏 Dock 圖示」選項,這種情況下它可能仍然會呼叫其隱藏的性質。
正如我們在其九月份的 Beta 版本中所述,Tailscale 的 macOS 應用程式的視窗化版本不會取代選單列應用程式,而是與之並行運行。可以從 Dock 或 Spotlight 搜尋中啟動它,並使許多 Tailscale 資料和功能更加易於存取。
從我們的 macOS 客戶端版本 1.96.2 開始預設啟用的視窗化介面,提供了:
讓我們知道您對新介面的看法,以便我們改進它。我們正在為 Windows 裝置開發類似的 UI。我們也一直在尋找方法為我們的軟體帶來一點功能性的趣味。