媒介
在年夜家日常平凡的開辟中,有時刻會碰到配景深色的界面上須要添加TextField,TextField默許的占位色彩也是深灰色,比擬好看清,這時候候就須要修正展位文字的色彩,可是體系沒有供給響應的辦法,那末就須要我們本身來自界說了
修正後的後果
話不多說,上面上代碼:
// .h文件 #import <UIKit/UIKit.h> @interface UITextField (Placeholder) @property UIColor *placeholderColor; @end
// .m文件 #import "UITextField+Placeholder.h" #import <objc/message.h> NSString * const placeholderColorName = @"placeholderColor"; @implementation UITextField (Placeholder) + (void)load { // 獲得setPlaceholder Method setPlaceholder = class_getInstanceMethod(self, @selector(setPlaceholder:)); // 獲得bs_setPlaceholder Method bs_setPlaceholder = class_getInstanceMethod(self, @selector(bs_setPlaceholder:)); // 交流辦法 method_exchangeImplementations(setPlaceholder, bs_setPlaceholder); } // OC最愛好懶加載,用的的時刻才會去加載 // 須要給體系UITextField添加屬性,只能應用runtime - (void)setPlaceholderColor:(UIColor *)placeholderColor { // 設置聯系關系 objc_setAssociatedObject(self,(__bridge const void *)(placeholderColorName), placeholderColor, OBJC_ASSOCIATION_RETAIN_NONATOMIC); // 設置占位文字色彩 UILabel *placeholderLabel = [self valueForKeyPath:@"placeholderLabel"]; placeholderLabel.textColor = placeholderColor; } - (UIColor *)placeholderColor { // 前往聯系關系 return objc_getAssociatedObject(self, (__bridge const void *)(placeholderColorName)); } // 設置占位文字,而且設置占位文字色彩 - (void)bs_setPlaceholder:(NSString *)placeholder { // 1.設置占位文字 [self bs_setPlaceholder:placeholder]; // 2.設置占位文字色彩 self.placeholderColor = self.placeholderColor; } @end
總結
以上就是IOS應用runtime修正文本框占位文字色彩的全體內容,願望對年夜家開辟IOS能有所贊助,假如有疑問年夜家可以留言交換。
【iOS應用runtime修正文本框(TextField)的占位文字色彩】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!