gpt4 book ai didi

jquery - Phonegap iOS6 : Proper solution to Remove form assistant bar (prev, 接下来,完成)

转载 作者:太空狗 更新时间:2023-10-29 16:33:53 26 4
gpt4 key购买 nike

另一个“如何删除上一个、下一个、完成按钮”-您可能会想的问题。实际上不是。我对此进行了相当深入的研究,并尝试了不同的方法,但似乎没有任何方法或解决方案能真正做到这一点。下面提到和显示的所有解决方法(就是它们)基本上都是相同的方法,替换 MainViewController.m 的内容 文件。我很清楚,或多或少,所有这些提议的解决方案都有些hacky,但仍然应该有人以一点优雅和深思熟虑的方式解决了这个问题,或者对C很了解的人,可以提出更可靠的解决方案。

请允许我通过引用一些建议的解决方案来说明我的观点:

Solution 1

在 iOS6 中,这会导致表单助手栏边框仍然存在,并且键盘就像表单助手栏仍然存在一样。

Solution 2

有人针对上述问题提出了解决方案,但我就是无法让它发挥作用。回答者对帖子进行了多次编辑和评论,这只会让人更难掌握在哪里做什么。我已经尝试了他的解决方案的所有变体,但我总是以出现严重错误而告终,并且该项目只是无法编译

Solution 3

不是 C 程序员(这就是我使用 phonegap 的原因)所以无法让它正常工作。不知道在哪里添加什么

Solution 4

不知道在哪里以及如何实现这个所以还没有尝试过。我应该在哪里注册以接收 keyboardDidShow 通知?应该在哪里添加功能?

结论

根据我的研究,如果你愿意的话,目前还没有人提出合适的解决方案。那么有没有人成功移除表单助手而没有上述任何副作用?

最佳答案

给你,我正在我正在开发的应用程序中使用它。为它进入应用程序商店而祈祷,尽管进行其他“黑客攻击”使其进入商店并不比其他人差,所以应该有一个公平的机会。

此方法没有烦人的副作用 - 它通过确保从一开始就不会创建栏来干净地删除栏。哒哒!

归功于 https://gist.github.com/2048571 ,这是他的代码,有一个小的修复。

#import <objc/runtime.h>
#import <UIKit/UIKit.h>

@interface UIWebView (HackishAccessoryHiding)
@property (nonatomic, assign) BOOL hackishlyHidesInputAccessoryView;
@end

@implementation UIWebView (HackishAccessoryHiding)

static const char * const hackishFixClassName = "UIWebBrowserViewMinusAccessoryView";
static Class hackishFixClass = Nil;

- (UIView *)hackishlyFoundBrowserView {
UIScrollView *scrollView = self.scrollView;

UIView *browserView = nil;
for (UIView *subview in scrollView.subviews) {
if ([NSStringFromClass([subview class]) hasPrefix:@"UIWebBrowserView"]) {
browserView = subview;
break;
}
}
return browserView;
}

- (id)methodReturningNil {
return nil;
}

- (void)ensureHackishSubclassExistsOfBrowserViewClass:(Class)browserViewClass {
if (!hackishFixClass) {
Class newClass = objc_allocateClassPair(browserViewClass, hackishFixClassName, 0);
IMP nilImp = [self methodForSelector:@selector(methodReturningNil)];
class_addMethod(newClass, @selector(inputAccessoryView), nilImp, "@@:");
objc_registerClassPair(newClass);

hackishFixClass = newClass;
}
}

- (BOOL) hackishlyHidesInputAccessoryView {
UIView *browserView = [self hackishlyFoundBrowserView];
return [browserView class] == hackishFixClass;
}

- (void) setHackishlyHidesInputAccessoryView:(BOOL)value {
UIView *browserView = [self hackishlyFoundBrowserView];
if (browserView == nil) {
return;
}
[self ensureHackishSubclassExistsOfBrowserViewClass:[browserView class]];

if (value) {
object_setClass(browserView, hackishFixClass);
}
else {
Class normalClass = objc_getClass("UIWebBrowserView");
object_setClass(browserView, normalClass);
}
[browserView reloadInputViews];
}

@end

关于jquery - Phonegap iOS6 : Proper solution to Remove form assistant bar (prev, 接下来,完成),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13850985/

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