[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 wordthà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
wordToGuesslà 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
wordsToGuesslà một constant để lưu trữ danh sách các từ có thể đoán. - Khai báo
revealedWordlà 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
lettersGuessedlà một state variable để lưu trữ các chữ cái đã đoán.
- Thay đổi
-
Sử dụng
onAppearmodifier:- Sử dụng
.onAppearmodifier trên VStack để thực thi code khi view xuất hiện. - Trong closure của
.onAppear, đặtwordToGuessbằng từ đầu tiên trong mảngwordsToGuesssử dụngcurrentWordIndex. - Khởi tạo
revealedWordbằ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
guestLetterthành một chuỗi rỗng để xóa nội dung của text field. - Đặt
isTextFieldFocusedthành false
- Thêm chữ cái đã đoán (
-
Sử dụng
onSubmitmodifier:- Thêm
.onSubmitmodifier 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ỉ khiguestLetterkhô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àonSubmitmodifier để 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!