我想要完成的任務: 我需要一個帶有標題文本的復選框,該復選框根據父視圖建立的動態寬度在多行上動態換行和中斷。我需要一個可以在 IB 中使用的解決方案,它會在運行時顯示在那里。我正在使用 XCode 13.1,在針對 MacOS 的 XIB 檔案中作業。
我在做什么:
我在 IB 中創建了一個 NSButton。在屬性檢查器中,我將其樣式設定為Check,在“控制”下我選擇Word Wrap了“換行符”,最后我設定了一個很長的文本作為標題,例如Asd Asd Asd lit tle words and many of them asd asd lit tle ones.
發生了什么: 當如上所述設定按鈕(案例 1)并縮小其寬度時,它將顯示 - 在 IB 和運行時 - 如下所示:

當按照
但是,此解決方案不適用于我的情況,因為它僅適用于靜態寬度,但我的復選框需要如上所述動態調整其寬度。
如果沒有額外的手動換行符,最有趣的是,顯然復選框已經根據標題的新包裝高度做出反應并改變其位置,而標題文本本身只是由控制元件的邊界剪裁而不是顯示在包裝中時尚。
我所期望的: 我期望標題在案例 1 中包裝。因為它沒有:這是錯誤還是功能?如何讓案例 1 作業并根據標題的長度和按鈕的寬度動態換行?我是否只需要在到目前為止我錯過的檢查器中設定另一個屬性?還是只有程式化的解決方案?
要回答為什么我不使用適當短標簽的問題:別問我,我只是一個遵循規范和要求的開發人員,不幸的是,我沒有關于什么是合適的文本長度的說法。 .
uj5u.com熱心網友回復:
這個答案的功勞歸功于@Willeke的評論:“AppKit 不支持多行復選框。” 情況 1 中復選框的有趣行為暗示其他情況似乎只是故障或錯誤。
我的結果是:我選擇了一種解決方法。我在多行標簽旁邊放置了一個復選框按鈕(IB 中的影像位置為“僅影像”),將兩者都放在自定義視圖中,并添加必要的約束。通過一些定位調整,我知道有一個解決方案,它看起來完全像一個單行復選框,我可以在 IB 中復制粘貼,并且通過自動布局解決 - 在 IB 和運行時 - 無需任何額外代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/399421.html
上一篇:如何在SwiftUI中隱藏標題欄?(適用于MacOS應用程式)
下一篇:Linux常用網路命令總結
