日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

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

RunTime運行時機制

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

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

?

//第一次用到這類的時候就會調(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ù)組一樣用

? ? ? ? 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è)置光標的顏色等

? ? self.tintColor = self.textColor;

?? ?

? ? //一加載這個TextField時讓里面的占位字符變灰色 就讓文本輸入框失去焦點z(因為在重寫失去焦點時設(shè)置了文字變灰色)

? ? [self resignFirstResponder];

}

?

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

- (BOOL)becomeFirstResponder{

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

? ? return [super becomeFirstResponder];

}

?

// 當文本輸入框失去焦點的時個會調(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ù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

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

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