3

我正在尝试构建一个触发器插件,它将删除我们输入和表单字段上的表单助手(基于 ios webview 键盘的愚蠢工具栏,可帮助您使用“下一个”和“上一个”按钮导航表单)。

是为 PhoneGap 提供的一个 hacky 解决方案,我想将其移植过来。

这个问题涉及我需要采取的步骤,以使用他们的插件系统为 Trigger 正确实施,假设上述 PhoneGap 解决方案将起作用。

我认为每次加载键盘时都需要进行调用,而不仅仅是全局调用一次。

4

2 回答 2

2

我刚刚自己实现了这个,由于某种原因,该UIKeyboardWillShowNotification事件没有为我触发,幸运的是另一个事件UIKeyboardCandidateCorrectionDidChangeNotification确实在正确的点触发。

如果您将此代码放在插件的 API 方法中,并确保在显示键盘之前调用它(一次),它应该可以工作。

[[NSNotificationCenter defaultCenter] addObserverForName:@"UIKeyboardCandidateCorrectionDidChangeNotification" object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
    UIWindow *keyboardWindow = nil;
    for (UIWindow *testWindow in [[UIApplication sharedApplication] windows]) {
        if (![[testWindow class] isEqual:[UIWindow class]]) {
            keyboardWindow = testWindow;
        }
    }

    // Locate UIWebFormView.
    for (UIView *possibleFormView in [keyboardWindow subviews]) {
        // iOS 5 sticks the UIWebFormView inside a UIPeripheralHostView.
        if ([[possibleFormView description] rangeOfString:@"UIPeripheralHostView"].location != NSNotFound) {
            for (UIView *subviewWhichIsPossibleFormView in [possibleFormView subviews]) {
                if ([[subviewWhichIsPossibleFormView description] rangeOfString:@"UIWebFormAccessory"].location != NSNotFound) {
                    [subviewWhichIsPossibleFormView removeFromSuperview];
                }
            }
        }
    }
}];
于 2012-10-19T08:27:46.910 回答
1

表单助手模块现在作为 Trigger.io v2.0 的一部分提供: https ://trigger.io/modules/damn_you_form_assist/current/

感谢 Fetchnotes 和 @Horak 提供此功能!

于 2013-07-31T15:38:15.690 回答