作爲理解Cocoa/Cocoa Touch API的小型項目,我一直在研究一個小型瀏覽器。我已經設法進行一個簡單的設計,其中有後退/前進/重新加載按鈕,地址欄本身和連接按鈕(我必須弄清楚另一點,如何修改鍵盤以獲得「Go」 。按鈕代替常規的回報在瀏覽器設置中使用/修改UITextField的問題
我現在的問題是,我的通用連接按鈕的功能如下:
-(IBAction)connect:(id)sender
{
NSURL *url = [NSURL URLWithString:address.text]; //address is the address bar
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
[webView loadRequest:request];
[address resignFirstResponder]; //kill the address entry keyboard
}
然而,出於某種原因,該URL只有同時具備「HTTP理解://'在它前面,只需輸入'google.com'並點擊Connect按鈕不會執行任何操作。我認爲這是NSURL類或UIWebView的一個潛在問題,但是API文檔並不是特別有用次,而我只是無法弄清楚哪個。我覺得在地址欄的文本屬性的前面自動添加'http://'可能是一個糟糕的主意,如果需要'https://'而不是另一方面(儘管另一方面,一個正常的網站通常會中繼到一個安全的協議,但事實並非總是如此)。
我也有後退和前進按鈕的問題,他們沒有更新地址字段的地址。這是可以理解的,因爲地址欄並不直接綁定到WebView(也許有一部分UIWebView能夠做到這一點,我還沒有遇到過),我還沒有想出一種方法來更新地址欄顯示新的URL。我注意到,有UIWebViewDelegate方法,其中包括諸如webViewDidStartLoad,但我不完全知道如何正確使用這些東西。我已經嘗試使用[webView isLoading]布爾值作爲測試,然後相應地修改地址欄的URL,但它似乎無效,可能是由於緩存或類似的東西。
如果我還沒有詳細闡述某些事情或者這些問題已經在這裏得到解答,請原諒我;我做了一個快速搜索,並在網上瀏覽了一下,只是在遇到任何關於做什麼的建議時失敗。正如我所說的,蘋果的API文檔雖然非常深,但有時使用起來會有些尷尬。如果您對我的目標有什麼疑問,我一定會盡力回答。