Swift更改SearchBar的“No Results”標籤和“Cancel”按鈕
今天要實現一個基於 TableView 的搜尋,基於經驗沿用了 iOS7 時代的 UISearchDisplayController,XCODE 一直提示我改用 UISearchController 。先不管這個,說說碰到的修改 Cancel 按鈕和修改 No Results 文字的問題。
修改 Cancel 按鈕比較簡單,直接通過 Controller 找到該 UINavigationButton 即可,最好的修改位置當然是在 searchDisplayControllerWillBeginSearch 方法。
func searchDisplayControllerWillBeginSearch(controller: UISearchDisplayController) {
self.searchDisplayController?.searchBar.showsCancelButton = true
var cancelButton: UIButton?
var topView: UIView = controller.searchBar.subviews[0] as! UIView
for view in topView.subviews {
if view.isKindOfClass(NSClassFromString("UINavigationButton")){
cancelButton = view as? UIButton
}
}
if (cancelButton != nil) {
cancelButton?.setTitle("取消", forState: UIControlState.Normal)
cancelButton?.setTitleColor(UIColor.appBlueColor(), forState: UIControlState.Normal)
}
}
修改 “No Results”就比較討厭,雖然思路類似,但是找了一圈都沒有直接找到該 UILabel,UISearchResultsUpdating 協議帶的方法
updateSearchResultsForSearchController 也不可以。最後還是在 StackOverFlow 找到了解決方案。
原帖:http://stackoverflow.com/questions/8447086/uisearchdisplaycontroller-no-results-text
func searchDisplayController(controller: UISearchDisplayController, shouldReloadTableForSearchString searchString: String!) -> Bool {
dispatch_after(
dispatch_time(
DISPATCH_TIME_NOW,
Int64(0.01)
),
dispatch_get_main_queue(), {
for view in self.searchDisplayController?.searchResultsTableView.subviews as! [UIView]{
if view.isKindOfClass(NSClassFromString("UILabel")){
let label = view as! UILabel
label.text = "沒有匹配"
}
}
})
return true
}
還是準備使用 SearchController 了,看到那麼多 WARNING 就忍不了。
相關文章
- 修改input標籤type=file型別按鈕的值型別
- uniapp更改導航欄按鈕文字APP
- Qt更改按鈕樣式 (以QSpinBox使用左右按鈕樣式為例)QT
- Fiori Elements List Report table 裡的普通按鈕,Global 按鈕 和 Determining 按鈕
- 直播網站原始碼,EasyUI按鈕控制標籤顯示與隱藏網站原始碼UI
- JFrame容器和JButton按鈕
- properties標籤和typeAliases標籤
- 原生前端:input標籤 number型別輸入框如何清除上下加減按鈕?前端型別
- MFC 捕獲按鈕 按下和抬起 (轉)
- vue中使用element ui時想要更改官方標籤的某些樣式時,一般不要在scoped中更改,要在全域性的style標籤中更改VueUI
- Win10系統更改開始選單按鈕樣式的方法Win10
- iview Table元件渲染操作按鈕, render 渲染icon圖示更改方法View元件
- VUE動態路由和按鈕的實現Vue路由
- 高亮按鈕
- 指標和標籤的基礎理解指標
- mybatis的 choose -- when test -- otherwise 標籤和 if test 標籤的區別MyBatis
- LabVIEW的自定義按鈕View
- 單選按鈕和核取方塊
- Script標籤的async和defer
- 自定義按鈕 圖片標題位置隨意放置
- HTML 標籤參考無極3註冊按字母順序排列 HTML 641480標籤HTML
- Flutter Button(按鈕)Flutter
- 小程式按鈕
- 復飛按鈕
- 乾貨!必看創意按鈕設計,打造真正的按鈕誘惑
- 文字框和標籤
- win10系統修改日期時“日期更改”按鈕灰色怎麼辦Win10
- HTML標籤(基本標籤的使用)HTML
- idea除錯按鈕的作用Idea除錯
- flutter demo (一):居中的按鈕Flutter
- Windows API視窗程式設計 - 系統標準按鈕WindowsAPI程式設計
- script標籤中的async和defer
- HTML 常用的標籤和屬性HTML
- 瞭解下Foundation 按鈕
- VBA命令按鈕操作
- HTML input image 按鈕HTML
- HTML input button 按鈕HTML
- HTML input image按鈕HTML
- HTML input button按鈕HTML