【发布时间】:2018-10-01 02:22:39
【问题描述】:
我想使用 UITextField 创建一个搜索栏。我尝试将 NavigationItem 的 TitleView 设置为文本字段并设置相应的约束。但是导航栏中心的文本字段仍然很短。如何使文本字段填满整个导航栏?这是我的代码:
cancelbtn = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(CourseTableViewController.searchCancelled))
self.navigationItem.leftBarButtonItem = cancelbtn
let searchField = UITextField()
searchField.translatesAutoresizingMaskIntoConstraints = false
searchField.borderStyle = .roundedRect
self.navigationItem.titleView = searchField
self.navigationItem.titleView!.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: cancelbtn.width)
self.navigationItem.titleView!.widthAnchor.constraint(equalToConstant: view.frame.size.width - cancelbtn.width)
它的外观是这样的: UIView
【问题讨论】:
-
你可能想研究一下使用 UISearchController。
-
我想使用 UITextField,因为它具有 textFieldShouldReturn 之类的功能,这对我的应用程序至关重要。除了左侧的取消按钮之外,是否有增加文本字段以占据整个导航栏?
-
UISearchController 有一个 UISearchBar。 UISearchBarDelegate 与 UITextFieldDelegate 有大部分相同的方法。
标签: swift uitextfield uinavigationbar swift4.2 titleview