Đây là một chút giải pháp.
Trước hết bạn cần phải nhận được trường văn bản của thanh tìm kiếm và tập trung sự liên kết văn bản:
let textFieldOfSearchBar = searchController.searchBar.value(forKey: "searchField") as? UITextField textFieldOfSearchBar?.textAlignment = .center
Sau đó, bạn cần thay đổi sự liên kết của placeholder. Đối với một số lý do nó không thay đổi với sự liên kết của trường văn bản. Bạn nên làm điều đó bằng cách thêm một lớp đệm để quan điểm trái của textfield chỉ khi bộ điều khiển tìm kiếm đang hoạt động, vì vậy sử dụng nó của phương pháp đại biểu:
func presentSearchController(_ searchController: UISearchController) {
//Is active
let width: CGFloat = 100.0 //Calcualte a suitable width based on search bar width, screen size, etc..
let textfieldOfSearchBar = searchController.searchBar.value(forKey: "searchField") as? UITextField
let paddingView = UIView(x: 0, y: 0, w: width, h: searchController.searchBar.frame.size.height)
textfieldOfSearchBar?.leftView = paddingView
textfieldOfSearchBar?.leftViewMode = .unlessEditing
}
func willDismissSearchController(_ searchController: UISearchController) {
let textfieldOfSearchBar = searchController.searchBar.value(forKey: "searchField") as? UITextField
textfieldOfSearchBar?.leftView = nil
}
Chúc may mắn
Vâng tôi muốn đặt nó ở trung tâm quá. Làm thế nào cứng là nó cho Apple để cho chúng tôi thiết lập searchBar.placeHolder.textAlignment = NSTextAlignmentCenter ?? – coolcool1994