SwiftUI實戰之TextField風格自定義與formatters

我想和您談談SwiftUI中的TextField組件。它看起來像是基礎教程,但TextField具有令人興奮的功能,例如UIKit中沒有的即開即用Formatter功能。

TextField formatters
TextFieldStyle協議

本文價值與收獲

看完本文后,您將能夠作出下面的界面

看完本文您將掌握的技能

  • 掌握TextField基礎功能
  • 掌握formatters的使用設置不同格式
  • 掌握TextField的不同風格

掌握TextField基礎功能

如您所知,我們可以使用TextField進行用戶輸入。我們需要做的就是創建一個TextField并將其分配給任何String值的Binding。讓我們來看一個非常簡單的例子。

struct ContentView: View {
    @State private var text = ""

    var body: some View {
        TextField("type something...", text: $text)
    }
}

在上面的示例中,我們創建一個帶有占位符的TextField并將其綁定到狀態變量。很簡單,對不對? TextField還提供了在用戶輸入期間可能需要處理的回調。

struct ContentView: View {
    @State private var text = ""

    var body: some View {
        TextField(
            "type something...",
            text: $text,
            onEditingChanged: { _ in print("changed") },
            onCommit: { print("commit") }
        )
    }
}

如您在上面的示例中看到的,TextField允許我們處理onEditingChanged和onCommit事件。讓我們了解它們之間的區別。每當用戶開始或完成編輯文本時,TextField就會調用onEditingChanged關閉。它還傳遞一個描述開始或結束事件的布爾值。每當用戶執行諸如按回車鍵之類的操作時,TextField就會調用onCommit閉包。

TextField formatters

好的,我們學習了基礎知識,現在我們可以轉到TextFields的一個更有趣的功能。您可能會注意到,TextField有一些接受Formatter的重載。這些重載使我們可以將TextField綁定到原始數??據,并在使用選定的Formatter實例轉換為字符串后將其呈現。讓我們看一個簡單的例子,它將幫助我們了解它的工作原理.

還有 54% 的精彩內容
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
支付 ¥1.00 繼續閱讀

推薦閱讀更多精彩內容