【问题标题】:How do you run a section of code when the user taps the UITextView in Swift?当用户在 Swift 中点击 UITextView 时,如何运行一段代码?
【发布时间】:2015-04-06 03:42:10
【问题描述】:

所以我有一个UITextView 和一些占位符文本。当用户在视图内部点击时,我想执行一些代码,即清除占位符文本。我试图创建一个IBAction,但它不会让我这样做。我在网上查了一下,找到了this UITextViewDelegate Protocol Reference,但我不知道怎么用。我发现很多使用委托的示例都是 Objective-C 并且我正在使用 Swift。

对于这个简单的问题,我很抱歉。

谢谢!

【问题讨论】:

    标签: ios swift xcode6 uitextview uitextviewdelegate


    【解决方案1】:

    给定一个文本视图someTextView 的IBOutlet,您需要做的就是使您的类符合UITextViewDelegate,将该文本视图的委托设置为self,并实现textViewDidBeginEditing 方法:

    class ViewController: UIViewController, UITextViewDelegate {
    
        @IBOutlet weak var someTextView: UITextView!
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            someTextView.delegate = self
        }
    
        func textViewDidBeginEditing(textView: UITextView) {
            println("Some code")
        }
    }
    

    【讨论】:

      【解决方案2】:

      视图控制器应该遵守 UITextViewDelegate。然后确保实现 textViewDidBeginEditing 委托方法。当用户开始编辑文本视图时,以下代码应清除默认占位符文本。

      import UIKit
      
      class ViewController: UIViewController, UITextViewDelegate {
      
          @IBOutlet weak var textView: UITextView!
      
      
          override func viewDidLoad() {
              super.viewDidLoad()
              self.textView.delegate = self
          }
      
          override func didReceiveMemoryWarning() {
              super.didReceiveMemoryWarning()
              // Dispose of any resources that can be recreated.
          }
      
          func textViewDidBeginEditing(textView: UITextView) {
              self.textView.text = ""
          }
      
      }
      

      【讨论】:

        猜你喜欢
        • 2010-11-19
        • 1970-01-01
        • 2020-10-23
        • 2011-03-30
        • 1970-01-01
        • 2022-11-02
        • 1970-01-01
        • 1970-01-01
        • 2020-07-18
        相关资源
        最近更新 更多