如何在searchBar中设置不区分大小写的http?

时间:2016-05-23 15:38:15

标签: ios swift webview uisearchbar case-insensitive

searchBar之上有一个webView,因此用户可以输入新的互联网地址。我发现当http更改为Http时,它不再起作用。如何为网址设置case insensitive?谢谢!

func searchBarSearchButtonClicked(searchBar: UISearchBar) {

    searchBar.resignFirstResponder()

    if searchBar.text != nil {

        let address = searchBar.text!

        if address.containsString("http://") || address.containsString("https://") {

        let str = address

        if let newUrl = NSURL(string: str) {

          let newRequest = NSURLRequest(URL: newUrl)

          myWebView.loadRequest(newRequest)

          }

        } else {

            let str = "http://" + String(address)

            if let newUrl = NSURL(string: str) {

                let newRequest = NSURLRequest(URL: newUrl)

                myWebView.loadRequest(newRequest)

            }

        }

    }

}

1 个答案:

答案 0 :(得分:0)

参考:

Here is a link to another stack overflow talking about uppercase and lowercase strings.

您应该能够通过执行以下操作将整个字符串设置为小写:

Private cancelSource As CancellationTokenSource

Sub StartWork
        cancelSource = New CancellationTokenSource
        Dim uiSyncContext = Tasks.TaskScheduler.FromCurrentSynchronizationContext
        Dim task = New Tasks.Task(Of Double())(Function() GenSin(3.4, 1.2, 100.0, 1000.0, cancelSource.Token))
        task.ContinueWith(Sub(dt) WriteData(dt.result), 
                          cancelToken, 
                          Tasks.TaskContinuationOptions.OnlyOnRanToCompletion, 
                          uiSyncContext)
    End Sub

    Function GenSin(freq As Double, amp As Double, rate As Double, spb As Double, cancelToken As CancellationToken) As Double()
        Dim dt As Double
        Dim isamp As Integer
        dt = 1 / rate
        isamp = CInt(spb) - 1
        Dim y(isamp - 1) As Double
        For i As Integer = 0 To isamp - 1
            If cancelToken.IsCancellationRequested Then Return Nothing
            y(i) = amp * Math.Sin(2 * Math.PI * freq * i * dt)
        Next
        Return y
    End Function

    Sub WriteData(results As Double()) 
        ' This is where you output the data
    End Sub

那应该将地址字符串转换为全部小写。 您可能还需要考虑更改要禁用的搜索栏的大小写。

另一个解决方案可能是检查address.contains(“Http://”)

最佳, 乔