UIWebView,自定义"返回"键

mar*_*lar 1 ios

我想在UIWebView的键盘中自定义"返回"键.通常你可以通过设置UITextField的returnKey属性来做到这一点,但是因为应用程序是HTML格式,所以没有UITextFields,只有textareas.

目前,我的工作是隐藏右下角的替换按钮,并使用键盘向上动画,使其位于返回键的顶部.实际上它看起来非常好,但我担心我的代码可能无法在iOS的未来版本中运行

有没有更好的方法来做到这一点?我知道在iOS4中有一种方法可以访问UIKeyBoard,但iOS5删除了它.

mpu*_*see 5

要查看Return键是否被触摸,我将onKeyPress添加到HTML body标签中

<body onKeyPress="return returnKeyPressed(event)">
Run Code Online (Sandbox Code Playgroud)

页面上有一个javascript函数,如下所示

function returnKeyPressed(event){
    if(window.event.keyCode == 13) document.location = "returnkeypressed:";
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我在webView委托的类中有这个

- (BOOL)webView:(UIWebView*)aWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType{
    NSString *requestString = [[request URL] absoluteString];
    NSArray *components = [requestString componentsSeparatedByString:@":"];
    NSString *theTask = (NSString *)[components objectAtIndex:0];

    if([theTask isEqualToString:@"returnkeypressed"]) [aWebView endEditing:YES];
}
Run Code Online (Sandbox Code Playgroud)

这只是结束webView中的所有编辑,解除键盘,并从任何特定的textarea或输入中删除焦点.

如何在webView情境中改变Return键的"标签"(对于像'Done'这样的东西)对我来说仍然是一个谜.想法?

更新:我将javascript函数更改为此

function returnKeyPressed(event){
    if(event.srcElement.nodeName == 'INPUT' && window.event.keyCode == 13) document.location = "returnkeypressed:";
    return true;
}
Run Code Online (Sandbox Code Playgroud)

允许返回键在textareas中正常运行.