UIWebView,自定义“返回”键
我想在UIWebView的键盘上自定义“返回”键。 通常你可以通过设置UITextField的returnKey属性来做到这一点,但是因为应用程序是在HTML中,所以没有UITextFields,只有textareas。
目前,我的工作是隐藏我的replacebutton在右下angular,并用键盘向上animation,使它位于返回键的顶部。 实际上,它看起来非常好,但我担心我的代码可能无法在未来版本的iOS中工作
有没有更好的方法来做到这一点? 我知道在iOS4有一种方法来访问UIKeyBoard,但iOS5删除了这一点。
为了查看返回键是否被触动,我把onKeyPress添加到HTML body标签中
<body onKeyPress="return returnKeyPressed(event)">
页面上有一个javascript函数,看起来像这样
function returnKeyPressed(event){ if(window.event.keyCode == 13) document.location = "returnkeypressed:"; return true; }
我在这个类是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]; }
这只是在webView的所有编辑结束,closures键盘,并从任何特定的textarea或input中删除焦点。
在webView的情况下(如“完成”)如何更改返回键的“标签”对我来说仍然是一个谜。 想法?
更新:我改变了JavaScript的function
function returnKeyPressed(event){ if(event.srcElement.nodeName == 'INPUT' && window.event.keyCode == 13) document.location = "returnkeypressed:"; return true; }
允许返回键在textareas中正常运行。