2014-12-03 22 views
0

我想實現一個方法來移動滾動視圖,以便textview不被鍵盤阻塞。 作爲標準代碼的一部分,UITextView需要設置爲零,但它不起作用。UITextView()不能被定義爲nil?

我首先聲明

var activeTextView = UITextView() 

然後

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

Xcode中顯示了一個錯誤的說法,UITextView的不符合NilLiteralConvertible。 爲什麼?

+0

你不需要聲明你的文本視圖爲「activeTextView?」,以允許它爲零嗎? – thegrinner 2014-12-03 18:59:49

+0

您需要使用activeTextView來接受零值:'var activeTextView:UITextView? = UITextView()' – 2014-12-03 19:03:44

+0

如何將它設置爲「UITextView?」後獲得activeTextView.frame ?如果我強制展開應用程序崩潰 – user3483697 2014-12-03 19:30:41

回答

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工作的原因是因爲這兩個子類它,但這並不是正確的!

+0

如何在將它設置爲 「UITextView?」後獲得activeTextView.frame? ?如果我強制解開應用程序崩潰 – user3483697 2014-12-03 19:29:17

+0

作爲一個可選的:)你知道該怎麼做? – 2014-12-03 19:55:57

+0

所以我試圖self.activeTextView!.frame,這有點作品,但後來崩潰。還嘗試過self.activeText?.frame,它只是馬上崩潰:(可能必須發佈一個單獨的問題,完整的代碼 – user3483697 2014-12-03 19:58:52

0

如果我理解你的問題的權利,你只需要將你的TextView作爲一個可選項來刪除,因爲在Swift中你不能設置一個非可選對象爲零。

var activeTextView: UITextView? 

應該解決你的問題。

Questionmark會將其作爲可選項進行刪除,只有可選項可以爲零。

相關問題