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

标签 html ios uiwebview xcode5

我有一个 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/

相关文章:

iPhone UIWebView - 如何设置缩放级别和位置?

html - 垂直对齐单词或句子中的单个文本字符

python - 有没有办法从 PDF 文件生成精确的 HTML 页面?

ios - CMMotionActivity 详述汽车以区分汽车和火车

ios - Swift 中的 parser.parse() 导致 EXC_BAD_ACCESS

iOS Web View 打开多个链接经常丢失请求

iphone - UIWebView 没有使用 ARC 释放所有事件字节

javascript - 如何使用 React Native 知道 mac 模拟器使用的字体系列

javascript - window.location.href 的安全问题

ios - 如何在先前授予后再次使用身份验证