在開發的時候我們經常會使用到UITextField和UITextView,這兩者很像,但是UITextView沒有placeholder屬性,當然你可以自定義一個UITextView或者給UITextView寫一個擴展,這里我介紹一個簡單的方法做一個偽placeholder。
我這里寫了兩個UITextView并且設置了初始text
遵循UITextViewDelegate協議實現協議方法,在里面判斷就ok了
func textViewDidBeginEditing(textView: UITextView) {
//開始編輯
if textView == self.questionTitleTextView {
if textView.text == "你的問題(5到49字以內)" {
textView.text = ""
textView.textColor = UIColor.blackColor()
}
}
if textView == self.questionDetalTextView {
if textView.text == "問題詳細描述(1000字以內)" {
textView.text = ""
textView.textColor = UIColor.blackColor()
}
}
}
func textViewDidEndEditing(textView: UITextView) {
//結束編輯
if textView == self.questionTitleTextView {
if textView.text == ""{
textView.text = "你的問題(5到49字以內)"
textView.textColor = UIColor(red: 0.64, green: 0.64, blue: 0.64, alpha: 1)
}
}
if textView == self.questionDetalTextView {
if textView.text == ""{
textView.text = "問題詳細描述(1000字以內)"
textView.textColor = UIColor(red: 0.64, green: 0.64, blue: 0.64, alpha: 1)
}
}
}
鍵盤Return鍵監聽在UITextView的代理里面是沒有對應方法的,這里可以用另一個方法判斷
func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
if text.containsString("\n") {
self.view.endEditing(true)
return false
}
return true
}