背景:有時(shí)候,我們長(zhǎng)按一段文本的時(shí)候,不希望出現(xiàn)全選,選擇,等等,那么改怎么做呢?
思路1,extension
extension UITextView{
public override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
if action.description == "selectAll:" {
return false
} else {
return super.canPerformAction(action, withSender: sender)
}
}
}
經(jīng)過測(cè)試,發(fā)現(xiàn)全選沒有了,但是,注意,app中所有的地方UITextView的全選都不見了。
思路2,繼承
class MyUItextview:UITextView {
internal override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
if action.description == "selectAll:" {
return false
} else {
return super.canPerformAction(action, withSender: sender)
}
}
}
經(jīng)過測(cè)試,發(fā)現(xiàn)使用MyUItextview空間的全選沒有了,其他OK。
總結(jié)及問題
有時(shí)候,我們需要對(duì)系統(tǒng)控件做一些個(gè)性化,一般可以從兩種方向考慮,要么擴(kuò)展控件,要么繼承控件,寫一個(gè)子類。
那么問題來了:
1、假設(shè)希望彈出自己定義的一個(gè)操作menu,該如何做呢?