UITextView委托方法未调用

时间:2018-07-27 03:04:31

标签: ios swift delegates uitextview

在这里快速菜鸟...

很难调用我的UITextView委托方法。我浏览了许多其他问题,无济于事。

我在UITextView中设置了ViewConroller。看起来像这样:

UITextView in ViewController

UIImageView的正上方有一个UITextView,并且所有内容都包裹在导航控制器中,应该没什么大不了的。

我确保将视图从情节提要板连接到我的ViewController

Storyboard Connection

从情节提要中,我按CTRL +拖动类声明下面的UITextView。这将产生以下行:

@IBOutlet weak var Description: UITextView!

类声明:

class ImageTextViewController: UIViewController, UITextViewDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

(我的NavigationControllerUIImageView需要其他代表)

然后我这样声明委托:

override func viewDidLoad() {
    super.viewDidLoad()

    self.Description.delegate = self

现在,当我完成编辑UITextView时,应调用以下委托方法。但是由于某种原因,它没有开火!

private func textViewDidEndEditing(_ textView: UITextView) -> Bool{
    print("we are done editing")
    spotDescription.resignFirstResponder()
    return true
}

如何让UITextView正常启动?

2 个答案:

答案 0 :(得分:3)

textViewDidEndEditing方法没有返回值。您必须编写

func textViewDidEndEditing(_ textView: UITextView) {
    print("we are done editing")
}

答案 1 :(得分:2)

杰克是对的。 在标题为Storyboard Connection的图像中,您的viewController似乎标题为TextImageViewController,而在类声明示例中,标题为ImageTextViewController

情节提要中的ViewController和ViewController应该都相同。

Андрей也正确。 TextViewDidEndEditing方法没有返回值。

lindanordstrom也有一个优点: TextViewDidEndEditing不应为私有。

编码愉快!