另一个“如何去除前,下一步,完成按钮” – 你可能会想到的.不是真的我做了一些相当深入的研究,尝试了不同的方法,但没有方法或解决方案似乎是正确的.下面提到和显示的所有解决方法(这就是它们)是基本相同的方法,替换MainViewController.m文件的内容.我很清楚,这些提出的解决方案或多或少是有点黑客,但仍然有一些人在那里解决了这个问题,有一点恩典和深思,或者有人知道C好,可以提出一个更坚实的解决方案.
请允许我参考一些提出的解决方案来说明我的观点:
在iOS6中,这导致窗体助手栏边框仍然存在,键盘就像表单助手栏还在那里.
有人提出了上述的解决方案,但我根本无法让它工作.回答者对这个帖子做了几次编辑和评论,只是更加难以理解在哪里做.我已经尝试了他的解决方案的所有变体,但我总是最终得到一个关键的错误,该项目根本不会编译.
不是一个C程序员(这就是为什么我使用phonegap)所以不能让它正常工作.不知道添加哪里.
不知道在哪里和如何实现,所以没有尝试过.我应该在哪里注册接收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