UITextView()不能定义为nil?

时间:2014-12-03 18:56:32

标签: ios swift uitextview

我正在尝试实现一种移动scrollview的方法,因此textview不会被键盘阻止。 作为标准代码的一部分,UITextView需要设置为nil,但它不起作用。

我首先宣布

var activeTextView = UITextView()

然后

    func textFieldDidEndEditing(textView: UITextView) {
    self.activeTextView = nil
    scrollView.scrollEnabled = false
}

xcode显示错误,说UITextView不符合NilLiteralConvertible。 为什么呢?

2 个答案:

答案 0 :(得分:1)

你的答案不正确!这不是因为它需要是UIViewUITextView和UITextField都是UIView的子类,你使用的是错误的。

你想要textFieldDelegate:

中的任何一个
func textFieldDidEndEditing(textField: UITextField)

https://developer.apple.com/Library/ios/documentation/UIKit/Reference/UITextFieldDelegate_Protocol/index.html

或来自textViewDelegate

func textViewDidEndEditing(textView: UITextView)

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextViewDelegate_Protocol/index.html

你使用UIView的原因是因为它们都是它的子类,但这并不能使它正确!

答案 1 :(得分:0)

如果我理解你的问题,你只需要将你的TextView作为一个可选项解析,因为在Swift中你不能将非可选对象设置为nil。

var activeTextView: UITextView?

应解决您的问题。

Questionmark将其作为可选项进行删除,只有一个可选项可以为nil。