例如,我在一个ViewController
中有2个或多个类型为UITextView
的属性:
@IBOutlet weak var titleTextView: UITextView!
@IBOutlet weak var textTextView:UITextView!
这是否意味着在ViewController
的viewDidLoad()
中,我必须将ViewController
设置为每个UITextView
属性的委托?
接着上面的问题:这是否也意味着当使用UITextViewDelegate
方法时,我必须分别为每个属性写下这些方法(如textViewDidBeginEditing()
等)?
你必须设置两个textview的委托,但当它涉及到textViewDidBeginEditing()
,你把那里的代码是为两个textview。如果你想让它不同,那么你可以指定你想要它工作的textview:
if textView == sometextview{
//Do what you want
} else {
//If the textView isn't sometextView, Do something else
}
如果你想知道,同样的规则适用于UITableViews和UICollectionViews
您也可以使用标记。他们在各种情况下提供帮助。假设你必须让任何其他对象作为textview的委托,你不需要访问ViewController的outlet属性,相反,你可以使用你设置的标签来标识视图。
// assign any integer value
view.tag = 20
// compare this way
view.tag == 20