import UIKit class ViewController: UIViewController ,UIActionSheetDelegate{ @IBAction func btn1(_ sender: UIButton) { label1.text="文本显示" let alertController = UIAlertController(title: "修改文本", message: nil, preferredStyle: UIAlertControllerStyle.alert) alertController.addTextField(configurationHandler: { (textField: UITextField!) -> Void in textField.placeholder = "请输入内容" // 添加监听代码,监听文本框变化时要做的操作 NotificationCenter.default.addObserver(self, selector: #selector(self.alertTextFieldDidChange), name: NSNotification.Name.UITextFieldTextDidChange, object: textField) }) let cancelAction = UIAlertAction(title: "取消", style: UIAlertActionStyle.cancel, handler: nil) let okAction = UIAlertAction(title: "确认", style: UIAlertActionStyle.default , handler: { (action: UIAlertAction!) -> Void in let login = (alertController.textFields?.first)! as UITextField let str = login.text self.label1.text=str NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UITextFieldTextDidChange, object: nil) }) okAction.isEnabled = false alertController.addAction(cancelAction) alertController.addAction(okAction) self.present(alertController, animated: true, completion: nil) } /// 监听文字改变 @objc func alertTextFieldDidChange(){ let alertController = self.presentedViewController as! UIAlertController? if (alertController != nil) { let login = (alertController!.textFields?.first)! as UITextField let okAction = alertController!.actions.last! as UIAlertAction if (!(login.text?.isEmpty)!) { okAction.isEnabled = true } else { okAction.isEnabled = false } } } @IBOutlet weak var label1: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } @IBOutlet weak var hello: UILabel! override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
效果图
// // ViewController.swift // hello // // Created by loaderman on 2018/12/22. // Copyright © 2018年 loaderman. All rights reserved. // import UIKit class ViewController: UIViewController ,UIActionSheetDelegate{ @IBAction func btn1(_ sender: UIButton) { weak var weakSelf = self // 弱引用 let alertController = UIAlertController() let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil) let directMessagesAction = UIAlertAction(title: "私信", style: .default) { (action) in self.label1.text="私信" } let focusOnAction = UIAlertAction(title: "关注", style: .default) { (action) in self.label1.text="关注" } alertController.addAction(focusOnAction) alertController.addAction(directMessagesAction) alertController.addAction(cancelAction) weakSelf!.present(alertController, animated: true, completion: nil) } @IBOutlet weak var label1: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } @IBOutlet weak var hello: UILabel! override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
效果