gpt4 book ai didi

html - 通过html select标签创建时如何获取UIPickerView的对象引用

转载 作者:可可西里 更新时间:2023-11-01 05:35:54 25 4
gpt4 key购买 nike

我有一个 UIWebview 包含一个 html“select”标签,显示为 dropdown list在屏幕上。

当我单击下拉菜单时,UIWebview 会自动弹出一个 UIWebSelectSinglePicker View ,显示为 default OS pickerview .

我想更改选取器 View 的背景颜色和文本颜色。我怎样才能实现这个目标?

我尝试监听 UIKeyboardWillShowNotification 事件,但此时此 View 尚未创建。

在此先感谢您的帮助。

最佳答案

我自己设法解决了这个问题。

如果有人也想即时更改 UIPickView,请看一下:

首先,在 UIKeyboardWillShowNotification 事件上添加一个监听器。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_pickerViewWillBeShown:) name:UIKeyboardWillShowNotification object:nil];

其次,当通知触发时,延迟后调用更改背景颜色方法。 <-- 这一点很重要,如果调用方法没有延迟,那么 pickview 在那一刻不存在。

- (void)_pickerViewWillBeShown:(NSNotification*)aNotification {
[self performSelector:@selector(_resetPickerViewBackgroundAfterDelay) withObject:nil afterDelay:0];
}

第三,浏览 UIApplication 窗口并找到 pickerView。您可以随心所欲地更改 pickerView。

-(void)_resetPickerViewBackgroundAfterDelay
{
UIPickerView *pickerView = nil;
for (UIWindow *uiWindow in [[UIApplication sharedApplication] windows]) {
for (UIView *uiView in [uiWindow subviews]) {
pickerView = [self _findPickerView:uiView];
}
}

if (pickerView){
[pickerView setBackgroundColor:UIColorFromRGB(0x00FF00)];
}
}

(UIPickerView *) _findPickerView:(UIView *)uiView {
if ([uiView isKindOfClass:[UIPickerView class]] ){
return (UIPickerView*) uiView;
}
if ([uiView subviews].count > 0) {
for (UIView *subview in [uiView subviews]){
UIPickerView* view = [self _findPickerView:subview];
if (view)
return view;
}
}
return nil;
}

希望对您有所帮助。

关于html - 通过html select标签创建时如何获取UIPickerView的对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19684489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com