在已有專案中使用了錯(cuò)誤的控制項(xiàng)類型:
#怎麼能方便的將UITextField
替換成UILabel
,而不用新建(拖曳)一個(gè)控制項(xiàng)。
感謝Chris的解惑;
如果介面很多,可以指定Label
#標(biāo)記,在程式碼裡搜尋來快速定位到控制項(xiàng).
右鍵xib或storyboard, Open As -> Source Code . 找到textField,修改為label. 再用interface builder打開就可以了, 修改後會(huì)保留原來的約束和Frame.
法一:
寫一個(gè)類別CustomTextField
,繼承自UITextField
,然後在可視化介面讓你的所有UITextField控制項(xiàng)
繼承它
在CustomTextField
中禁掉所有觸摸事件,基本上就與UILabel的表現(xiàn)一致了
如有必要,重寫UITextField
的系統(tǒng)方法,不調(diào)用super方法,例如覆蓋掉UIAlertView
的點(diǎn)擊事件
-(void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated{
// [super dismissWithClickedButtonIndex:buttonIndex animated:animated];
return;
}
法二:
增加UITextField
的分類擴(kuò)展,然後利用runtime的method swizzling交換系統(tǒng)方法,這樣你所有的UITextField
就會(huì)變得跟UILabel一樣了。 。 。慎用! ! !
最後總結(jié),有這閒工夫不如還是一個(gè)刪除替換容易些