如何使用发送按钮将文本发送到 swift iOS 上的文本字段

问题描述

我真的很新。如果可能的话,我想要做的就是将我在密码字段中获得的文本作为安全文本发送到文本字段。有点像发送文本但使用安全文本。安全按钮只是让您看到里面的东西。我得到了它的工作,但我不知道如何将信息从一个地方传输到另一个地方。创建一个函数?对不起,我是个菜鸟。

import UIKit

class ViewController: UIViewController {

private let scrollView: UIScrollView = {
    let scrollView = UIScrollView()
    scrollView.clipsToBounds = true
    return scrollView
}()

private let secureButton : UIButton = {
    let button = UIButton()
    button.setTitle("Secure",for: .normal)
    button.backgroundColor = .link
    button.setTitleColor(.white,for: .normal)
    button.layer.cornerRadius = 12
    button.titleLabel?.font = .systemFont(ofSize: 20,weight: .bold)
    button.layer.masksToBounds = true
    button.addTarget( self,action: #selector(securebuttonTapped),for: .touchUpInside)
    return button
    
}()

let sendButton : UIButton = {
    let button = UIButton()
    button.setTitle("Send",for: .normal)
    button.backgroundColor = .green
    button.setTitleColor(.white,action: #selector(sendButtonTapped),for: .touchUpInside)
    return button
}()

let textView = UITextView()

private let passwordField: UITextField = {
    let field = UITextField()
    field.autocapitalizationType = .none
    field.autocorrectionType = .no
    field.returnKeyType = .done
    field.layer.cornerRadius = 12
    field.layer.borderWidth = 1
    field.layer.borderColor = UIColor.lightGray.cgColor
    field.placeholder = "Password"
    field.leftView = UIView(frame: CGRect(x: 0,y: 0,width: 5,height: 0))
    field.leftViewMode = .always
    field.backgroundColor = .white
    field.isSecureTextEntry = true
    
    return field
}()




override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    
    view.backgroundColor = .gray
    
    
    
    
    view.addSubview(scrollView)
    scrollView.addSubview(passwordField)
    scrollView.addSubview(secureButton)
    scrollView.addSubview(textView)
    scrollView.addSubview(sendButton)

}

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    
    scrollView.frame = view.bounds
    
    passwordField.frame = CGRect(x: 30,y: 100,width: scrollView.width-60,height: 52)
    secureButton.frame = CGRect(x: 30,y: passwordField.bottom+10,height: 30)
    textView.frame = CGRect(x: 30,y: secureButton.bottom+10,height: 30)
    sendButton.frame = CGRect(x: 30,y: textView.bottom+10,height: 30)

}
    
@objc func securebuttonTapped() {
    let text = passwordField
    text.isSecureTextEntry = !text.isSecureTextEntry
}

@objc func sendButtonTapped() {
    let text = passwordField
    textView.inputView = text
    print("send button tapped")
}

}

解决方法

Swift 5

如果你想在同一个控制器中传递数据,它非常简单。只需将文本分配给按钮按下的 textField

  var textField = UITexField()
    
  @objc func sendButtonTapped() {
    // here you will assign the text you got from the password field to watever textfield you want,whether it is secure text or simple text.
    
        textField.text = passwordField.text
        print("send button tapped")
    }
    

如果你想将该文本传递给其他一些 ViewController,你需要像这样发送

  let vc = UIStoryboard(name: "Main",bundle: 
  nil).instantiateViewController(withIdentifier: "YourViewController") as! 
  YourViewController

  // here you will assign the text to the variable from other viewcontroller you 
  want to. 

  vc.text = "Enter the text here"
  self.navigationController?.pushViewController(vc,animated: true)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...