[Video Summary] Ch. 2.6 onChange and onSubmit in SwiftUI to Guess a Letter - WordGarden App (2025)
Mô tả nhanh
Video này hướng dẫn cách tích hợp công việc từ bài học trước vào ứng dụng Word Garden, sử dụng các modifier onChange
và onSubmit
trong SwiftUI để đoán chữ cái. Video cũng giới thiệu cách khởi tạo và cập nhật giao diện người dùng khi ứng dụng khởi chạy.
Video
Mô tả chi tiết
Video này trình bày cách tích hợp công việc từ bài học trước vào ứng dụng Word Garden và sử dụng các modifier onChange
và onSubmit
.
Dưới đây là các bước chi tiết được thực hiện trong video:
-
Khởi tạo biến và mảng:
- Thay đổi
current word
thànhcurrent word index
để rõ ràng hơn về mục đích sử dụng (chứa index của từ hiện tại). - Khai báo
wordToGuess
là một state variable để lưu trữ từ cần đoán. Ban đầu, nó được khởi tạo là một chuỗi rỗng. - Khai báo
wordsToGuess
là một constant để lưu trữ danh sách các từ có thể đoán. - Khai báo
revealedWord
là một state variable để lưu trữ từ đã đoán được (ban đầu là các dấu gạch dưới). - Khai báo
lettersGuessed
là một state variable để lưu trữ các chữ cái đã đoán.
- Thay đổi
-
Sử dụng
onAppear
modifier:- Sử dụng
.onAppear
modifier trên VStack để thực thi code khi view xuất hiện. - Trong closure của
.onAppear
, đặtwordToGuess
bằng từ đầu tiên trong mảngwordsToGuess
sử dụngcurrentWordIndex
. - Khởi tạo
revealedWord
bằng cách tạo một chuỗi chứa các dấu gạch dưới, mỗi dấu gạch dưới đại diện cho một chữ cái trongwordToGuess
. - Code này lấy từ playground trước đó để tạo revealedWord.
- Sử dụng
-
Xử lý sự kiện "Guess a Letter" Button:
- Thêm chữ cái đã đoán (
guestLetter
) vàolettersGuessed
. - Cập nhật
revealedWord
để hiển thị các chữ cái đã đoán đúng. - Đặt
guestLetter
thành một chuỗi rỗng để xóa nội dung của text field. - Đặt
isTextFieldFocused
thành false
- Thêm chữ cái đã đoán (
-
Sử dụng
onSubmit
modifier:- Thêm
.onSubmit
modifier vào text field để thực thi code khi người dùng nhấn phím "done" trên bàn phím. - Sử dụng
guard
để đảm bảo rằng chỉ khiguestLetter
không rỗng thì code mới được thực thi (ngăn chặn việc xử lý khi người dùng nhấn "done" mà không nhập gì). - Tạo hàm
guessALetter
để chứa code xử lý việc đoán chữ cái, và sau đó gọi hàm này từ cả button action vàonSubmit
modifier để tránh lặp code.
- Thêm
Video kết thúc bằng việc thử nghiệm ứng dụng và xác nhận rằng mọi thứ hoạt động như mong đợi.
Chúc bạn thành công!