在我的 iOS 应用程序中,我有一个带有文本字段的 UIWebView。我想回应被点击的 Return 键。我怎么做?
我能否以某种方式访问 UITextField,以便实现 UITextFieldDelegate 方法 textFieldShouldReturn?还是有其他方法可以做到这一点?
您需要为此做一些 JavaScript 技巧。
在您的 HTML 文档中,为您的文本输入控件绑定一个 keyup 事件回调,(上次我检查时,不知何故 UIWebView 不会为返回键触发 keypress 事件,因此 keyup 事件是您最好的选择)
在此回调中,让 Web 视图转到自定义 URL 方案。例如下面:
var input = document.getElementById('textInput');
input.onkeyup = function(){window.location = 'callback://keyup'};
然后您可以在 UIWebView 的委托中处理此 URL 方案
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if ([request.URL.scheme isEqualToString:@"callback"]) {
// Do what you want
return NO;
}
return YES;
}
uiwebview 不能 uitextfieldDelegate 。尝试阅读 Apple 文档