日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RunTime运行时在iOS中的应用之UITextField占位符placeholder

發(fā)布時間:2025/7/25 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RunTime运行时在iOS中的应用之UITextField占位符placeholder 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

RunTime運(yùn)行時機(jī)制

runtime是一套比較底層的純C語言API, 屬于1個C語言庫, 包含了很多底層的C語言API。

在我們平時編寫的Objective-C代碼中, 程序運(yùn)行過程時, 其實(shí)最終都是轉(zhuǎn)成了runtime的C語言代碼, runtime算是OC的幕后工作者,下面介紹一下用runtime遍歷出UITextField的一些隱藏屬性,查出后再通過KVC來進(jìn)行修改這個屬性,其他的控件都可使用此類似的方法。

?

//第一次用到這類的時候就會調(diào)用的只會調(diào)用一次方法 ,這個方法查的時候用一下 ,用于遍歷出UITextField的一些隱藏屬性,以后不用這個方法

+ (void)initialize{

? ? unsigned int count = 0;

? ? // 拷貝出所有的成員變量列表 ? ivars是指向這個數(shù)組的指針也是指向首個元素的指針

? ? Ivar *ivars = class_copyIvarList([UITextField class], &count);

? ? for (int i = 0; i < count; ++i) {

? ? ? ? //數(shù)組名其實(shí)就是指向數(shù)組首元素的指針? 如果指針是指向數(shù)組的首元素,就可把指針當(dāng)數(shù)組一樣用

? ? ? ? Ivar t = ivars[i];

? ? ? ? //打印成員變量名 ?在控制臺打印輸出查找到屬性 ??_placeholderLabel

? ? ? ? NSLog(@"%s",ivar_getName(t));

? ? }

? ? // 釋放指針變量 ivars 是拷貝過的所以用完要釋放

? ? free(ivars);

}

?

- (instancetype)initWithFrame:(CGRect)frame{

? ? if(self = [super initWithFrame:frame]){

? ? ? ? [self setupUI];

? ? }

? ? return self;

}

?

- (void)awakeFromNib{

? ? [super awakeFromNib];

? ? [self setupUI];

}

?

- (void)setupUI{

? ? self.textColor = [UIColor whiteColor];

? ? //tintColor 可設(shè)置光標(biāo)的顏色等

? ? self.tintColor = self.textColor;

?? ?

? ? //一加載這個TextField時讓里面的占位字符變灰色 就讓文本輸入框失去焦點(diǎn)z(因?yàn)樵谥貙懯ソ裹c(diǎn)時設(shè)置了文字變灰色)

? ? [self resignFirstResponder];

}

?

// 當(dāng)文本輸入框成為第一響應(yīng)者就會調(diào)用

- (BOOL)becomeFirstResponder{

? ? [self setValue:self.textColor forKeyPath:@"_placeholderLabel.textColor"];

? ? return [super becomeFirstResponder];

}

?

// 當(dāng)文本輸入框失去焦點(diǎn)的時個會調(diào)用的方法

- (BOOL)resignFirstResponder{

? ? //通過 KVC 訪問 _placeholderLabel.textColor 屬性 設(shè)置顏色

? ? [self setValue:[UIColor grayColor] forKeyPath:@"_placeholderLabel.textColor"];

? ? return [super resignFirstResponder];

}

轉(zhuǎn)載于:https://www.cnblogs.com/chenweb/p/7096802.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的RunTime运行时在iOS中的应用之UITextField占位符placeholder的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。