iOS 9(仅限iPad):UIWebView不再显示选择选项元素

时间:2015-09-23 15:54:51

标签: select webview uiwebview ios9

如果在WebView中加载此下拉列表,则仅显示select元素。通过单击框没有任何反应。如果此框中有“click”-eventlistener,则调用警报,它会显示此警报,并在单击警报后显示该列表。看起来该列表被WebView隐藏。请帮忙!

<select type="selector" class="selector" id="systemSelector" style="top: 30px;">
    <option value="0">Value</option>
    <option value="1">Value</option>
    <option value="2">Value</option>
    <option value="3">Value</option>
    <option value="4">Value</option>
    <option value="5">Value</option>
</select>

如果有输入字段,通过单击输入字段,它会显示键盘。通过单击选择框显示键盘后,所有选项也会显示。

1 个答案:

答案 0 :(得分:1)

解决方案在我的代码中看起来像这样:

在.m文件的顶部放置:

#define IS_IOS8_3_AND_LOWER (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_8_3)

在@implementation中你放了:

#if IF_IS_IOS8_3_AND_LOWER
/* Workaround for Apple bug (UIPopoverPresentationController ... should have a non-nil sourceView ...). */
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion {
        // Load resources for iOS 8.3 or earlier
        if ([viewControllerToPresent respondsToSelector:@selector(popoverPresentationController)]) {
            if (viewControllerToPresent.popoverPresentationController && !viewControllerToPresent.popoverPresentationController.sourceView) {
                return;
            }
        }
        [super presentViewController:viewControllerToPresent animated:flag completion:completion];
}
#endif