当点击 WkWebView 中 Alert 中的 Textfield 时显示键盘
Show keyboard when Textfield inside Alert in WkWebView is tapped
我在 WKWebView 中加载了一个游戏,这个 Alert 和 textField 在游戏结束后出现。我想在用户点击 textField 时显示键盘。但问题是没有显示此警报和文本字段的代码,否则我会管理文本字段成为FirstResponder()。
迫切需要一些帮助。非常感谢。
好的,我找到了解决方案。我在 WkwebView 的自定义 Alert/Popup 中有一个 textField,我希望 textField 为 becomeFirstResponder()
这样我就可以接受用户输入。
// 所以我实现了 WKUIDelegate..
#import <WebKit/WebKit.h>
@interface MyController : UIViewController<WKUIDelegate>
已分配代表..
- (void)viewDidLoad {
[super viewDidLoad];
_webkitView.UIDelegate = self;
}
//实现委托函数。
- (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString *result))completionHandler
{
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"BlockChaid Id, Email or Username"
message:prompt
preferredStyle:UIAlertControllerStyleAlert];
[alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
textField.placeholder = prompt;
textField.secureTextEntry = NO;
textField.text = defaultText;
}];
[alert addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
completionHandler(nil);
}]];
[alert addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
completionHandler([alert.textFields.firstObject text]);
}]];
[self presentViewController:alert animated:YES completion:nil];
}
成功构建后,这是输出。
- 我点击了 textField,javaScript 警报出现了。
- 这就是我想要实现的目标。
也许我没有很好地解释我的问题,但这就是我所要求的。谢谢:)
我在 WKWebView 中加载了一个游戏,这个 Alert 和 textField 在游戏结束后出现。我想在用户点击 textField 时显示键盘。但问题是没有显示此警报和文本字段的代码,否则我会管理文本字段成为FirstResponder()。
迫切需要一些帮助。非常感谢。
好的,我找到了解决方案。我在 WkwebView 的自定义 Alert/Popup 中有一个 textField,我希望 textField 为 becomeFirstResponder()
这样我就可以接受用户输入。
// 所以我实现了 WKUIDelegate..
#import <WebKit/WebKit.h>
@interface MyController : UIViewController<WKUIDelegate>
已分配代表..
- (void)viewDidLoad {
[super viewDidLoad];
_webkitView.UIDelegate = self;
}
//实现委托函数。
- (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString *result))completionHandler
{
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"BlockChaid Id, Email or Username"
message:prompt
preferredStyle:UIAlertControllerStyleAlert];
[alert addTextFieldWithConfigurationHandler:^(UITextField *textField) {
textField.placeholder = prompt;
textField.secureTextEntry = NO;
textField.text = defaultText;
}];
[alert addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"Cancel", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
completionHandler(nil);
}]];
[alert addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
completionHandler([alert.textFields.firstObject text]);
}]];
[self presentViewController:alert animated:YES completion:nil];
}
成功构建后,这是输出。
- 我点击了 textField,javaScript 警报出现了。
- 这就是我想要实现的目标。
也许我没有很好地解释我的问题,但这就是我所要求的。谢谢:)