为有牺牲多壮志,敢教日月换新天。

[一、基础控件]10使用SecureField密文输入框接收用户的密码

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址: https://www.cnblogs.com/strengthen/p/16587205.html
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

本文演示SecureField视图的使用。

【SceneDelegate.swift】:ContextView添加了一个属性,所以需要修改程序入口处的代码

 1     func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
 2         // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
 3         // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
 4         // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
 5 
 6         // Use a UIHostingController as window root view controller
 7         if let windowScene = scene as? UIWindowScene {
 8             let window = UIWindow(windowScene: windowScene)
 9             //由于给ContextView添加了一个属性,所以需要修改程序入口处的代码,设置password的初始值为空。
10             window.rootViewController = UIHostingController(rootView: ContentView(password: ""))
11             self.window = window
12             window.makeKeyAndVisible()
13         }
14     }

【ContentView.swift】

 1 import SwiftUI
 2 
 3 struct ContentView : View {
 4     //要使用SecureField视图,
 5     //首先给当前的结构体添加一个属性。
 6     //该属性用于存储用户输入的密码,并在属性的左侧添加一个@State属性代理标记,
 7     //从而使属性和界面元素进行绑定。
 8     @State var password : String
 9     
10     var body: some View {
11         
12         VStack{
13             //修改文本视图,以实时显示属性的值。
14             Text("Your password is \(password)!")
15             
16             //添加一个密文输入框,并设置指定的占位符。
17             //同时设置它的text的值为password属性的值,
18             //并通过$符号和password属性进行绑定包装。
19             SecureField("Your password", text: $password) {
20                 //在用户完成密码的输入之后,在尾随的闭包语句中,打印用户输入的密码信息。
21                 print("Your password is \(self.password)!")
22             }
23                 //设置输入框的边框样式为圆角样式
24             .textFieldStyle(RoundedBorderTextFieldStyle())
25         }
26         //设置VStack视图的内边距,使SecureField与屏幕两侧保持一定的距离
27         .padding()
28     }
29 }
30 
31 #if DEBUG
32 struct ContentView_Previews : PreviewProvider {
33     
34     static var previews: some View {
35         //然后同样对PreviewProvider的代码进行一些修改。
36         ContentView(password: "")
37     }
38 }
39 #endif

 

posted @ 2022-08-15 09:51  为敢技术  阅读(25)  评论(0编辑  收藏  举报