是否可以在不使用私有 API 的情况下获得 UITextField
选择背景颜色?
问问题
1633 次
4 回答
2
不,没有公开的 API。
不过,您可以使用私有 API 进行尝试:
UITextField
有一个名为的实例方法selectionHighlightColor
和UIColor
一个同名的类方法。两者都返回应该是相同的颜色[UIColor colorWithRed:0 green:.33 blue:.65 alpha:.2]
。
于 2013-07-11T12:52:55.573 回答
1
没有可用的实际方法,但我只是写了一个使用 UILongPressGestureRecognizer 来解决问题的方法。不清楚是要设置选定的背景颜色还是只是读取它?但是你可以试试这个,也许它会给你一些想法:
-(void)viewDidLoad
{
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(selectionDetected:)];
longPress.minimumPressDuration=0.3;//you could vary this value for whatever you prefer
[self.yourTextField addGestureRecognizer:longPress];
[longPress release];
}
-(void)selectionDetected:(UILongPressGestureRecognizer*)longPress
{
if(longPress.state==1)
{
self.yourTextField.backgroundColor = [UIColor blueColor];//selected
}
else if(longPress.state==3)
{
self.yourTextField.backgroundColor= [UIColor orangeColor];//no longer selected..put back to original color
}
}
在用户抬起手指之前(即使他们在屏幕上移动),它将保持“选定”颜色。不确定这是否真的是您正在寻找的东西,但也许它会对某人有所帮助。
于 2013-07-17T23:32:55.790 回答
1
根据phix23 的回答,您可以创建一个UITextField
子类并覆盖该selectionHighlightColor
属性。喜欢:
- (UIColor *)selectionHighlightColor{
return [UIColor clearColor];
}
在 iOS 9.3 中测试,也在生产中
于 2016-05-03T08:49:17.493 回答
0
NO Apple 不提供此类 API。
于 2013-07-17T13:13:23.267 回答