2012-04-02 81 views
1

我想定製UIWebView鍵盤中的「返回」鍵。通常你可以通過設置UITextField的returnKey屬性來做到這一點,但是因爲應用程序是HTML格式的,所以沒有UITextFields,只有textareas。UIWebView,自定義「返回」鍵

目前,我的解決方法是隱藏右下角的替換按鈕,並使用鍵盤向上移動它,使其位於返回鍵的頂部。它看起來非常好,但是我擔心我的代碼可能無法在未來版本的iOS中工作。有沒有更好的方法可以做到這一點?我知道在iOS4中有一種方法來訪問UIKeyBoard,但iOS5刪除了這個。

回答

5

要查看如果回車鍵被感動我添加onkeypress事件的HTML body標籤這樣

<body onKeyPress="return returnKeyPressed(event)"> 

有看起來像這樣

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

頁面上的javascript函數我有這個在這個類是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中的所有編輯,關閉鍵盤,並從任何特定的textarea或輸入刪除焦點。

如何在webView的情況下(如'完成')更改返回鍵的「標籤」對我來說仍然是一個謎。想法?

更新: 我改變了JavaScript函數來此

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

允許返回鍵在文字區域正常工作。