4
A
回答
11
這是可能在WKWebView
與上UIWebView
混寫出來的inputAccessoryView
的方法的變型。
首先,添加這個小類:
@interface _NoInputAccessoryView : NSObject
@end
@implementation _NoInputAccessoryView
- (id)inputAccessoryView {
return nil;
}
@end
接下來,添加這個方法:
- (void)removeInputAccessoryViewFromWKWebView:(WKWebView *)webView {
UIView *targetView;
for (UIView *view in webView.scrollView.subviews) {
if([[view.class description] hasPrefix:@"WKContent"]) {
targetView = view;
}
}
if (!targetView) {
return;
}
NSString *noInputAccessoryViewClassName = [NSString stringWithFormat:@"%@_NoInputAccessoryView", targetView.class.superclass];
Class newClass = NSClassFromString(noInputAccessoryViewClassName);
if(newClass == nil) {
newClass = objc_allocateClassPair(targetView.class, [noInputAccessoryViewClassName cStringUsingEncoding:NSASCIIStringEncoding], 0);
if(!newClass) {
return;
}
Method method = class_getInstanceMethod([_NoInputAccessoryView class], @selector(inputAccessoryView));
class_addMethod(newClass, @selector(inputAccessoryView), method_getImplementation(method), method_getTypeEncoding(method));
objc_registerClassPair(newClass);
}
object_setClass(targetView, newClass);
}
然後,所有你需要做的就是調用該方法,並傳入您的WKWebView
:
[self removeInputAccessoryViewFromWKWebView:webView];
注意:我還不確定這是否會通過應用審覈,但它是極其類似於我用於UIWebView
的相同代碼,並且確實通過了審查。
更新:此代碼位於已通過App Store審覈的應用中。
相關問題
- 1. 當隱藏鍵盤ios(ipad)時隱藏快捷鍵欄
- 2. 隱藏鍵盤
- 3. 隱藏鍵盤
- 4. 隱藏鍵盤自動提示欄
- 5. 觸摸導航欄時隱藏鍵盤
- 6. 隱藏鍵盤時工具欄消失
- 7. 軟鍵盤隱藏工具欄
- 8. 如何隱藏鍵盤助手欄
- 9. 鍵盤隱藏事件
- 10. 辭職急救員隱藏鍵盤,但不生成鍵盤將隱藏/鍵盤確實隱藏事件
- 11. 隱藏鍵盤ios
- 12. 隱藏軟鍵盤
- 13. 隱藏IOS鍵盤
- 14. 鈦 - 隱藏鍵盤
- 15. uitextfield隱藏鍵盤?
- 16. 鍵盤隱藏BottomSheetDialogFragment
- 17. 隱藏軟鍵盤或強制改變焦點隱藏鍵盤
- 18. gtk +隱藏菜單欄禁用所有鍵盤快捷鍵
- 19. Android鍵盤隱藏屏幕
- 20. 隱藏鍵盤/ resignFirstResponder強制
- 21. 軟鍵盤隱藏的EditText
- 22. Nativescript Android - 隱藏鍵盤
- 23. 隱藏虛擬鍵盤
- 24. iPhone - 鍵盤隱藏TextField
- 25. 隱藏鍵盤和secureTextField
- 26. 可靠隱藏軟鍵盤
- 27. UIWebView隱藏鍵盤邊距
- 28. 隱藏鍵盤和按鈕
- 29. Android軟鍵盤隱藏RecyclerView
- 30. TextView與鍵盤隱藏
這隻適用於UIWebView,不是嗎? –
不,這個解決方案專門用於WKWebView,雖然它是根據UIWebView的一種技術改編的。 –
@JustinMichael,任何想法我們如何將這個移植到Swift? – Eduard