Kursor tidak terlihat di UISearchBar iOS 7

Saya memiliki UISearchBar di UITableView sebagai header tabel. Saat saya menekan UISearchBar untuk mulai mencari, metode ini dipicu

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar

untuk UISearchDisplayController.

Tapi hasilnya seperti itu;

Seperti yang Anda lihat, tidak ada kursor, saya bisa mulai mengetik dan mencari, semuanya berfungsi dengan baik. Juga tidak terlihat hanya di iOS 7. Namun, dengan iOS 6.1 dan iOS 7.1 Beta 3 saya dapat melihat kursor. Jadi bagaimana saya bisa membuat kursor UISearchBar terlihat atau bagaimana cara menambahkan kursor di UISearchBar saya?


person Kemal Can Kaynak    schedule 30.01.2014    source sumber
comment
Adakah kemungkinan Anda menyetel tintColor di suatu tempat untuk mencoba mengubah warna UI pembungkus? Jika ya, hal ini dapat menyebabkan masalah kursor yang Anda lihat (solusi potensial).   -  person patridge    schedule 13.03.2014


Jawaban (6)


Kursor di bilah pencarian mengambil warna dari Search Bar -> View -> properti Tint Color. Dalam kasus Anda, ini disetel ke warna Putih, sehingga menjadi tidak terlihat.

person Tomas M    schedule 04.03.2014
comment
Dalam kondisi normal, Anda benar tetapi itu tidak berhasil untuk saya. Saya memecahkan masalah ini dengan membuat SearchBar iOS asli. - person Kemal Can Kaynak; 10.03.2014
comment
Jika Anda hanya ingin mengubah warna kursor, Anda dapat menggunakan ini: UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).tintColor = .black - person Radek Wilczak; 16.02.2018

coba gunakan dengan

-(void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
{
    self.navigationItem.titleView.tintColor = [UIColor blueColor];

}

semoga ini bisa membantu Anda

person pulkit    schedule 05.05.2014

Coba atur warna rona bidang teks menggunakan UIAppearance

[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setTintColor: [UIColor darkGrayColor]];
person Yatheesha    schedule 13.07.2015
comment
Apa yang setara dengan Swift? - person Satyam; 14.07.2017

Jika Anda ingin kursor dan tombol batal memiliki warna berbeda...


Mulailah dengan mengatur warna rona tampilan (bukan rona batang) di editor storyboard, yang akan diterapkan pada kursor dan tombol batal.

UISearchBar di editor storyboard dengan simulator.


Untuk membuat kursor memiliki warna berbeda, Anda perlu melakukannya secara terprogram. Bidang teks disarangkan beberapa tingkat ke bawah dalam subtampilan bilah pencarian. Gunakan fungsi pembantu setTextFieldTintColor ini untuk melintasi semua subview.

@IBOutlet weak var searchBar: UISearchBar!

override func viewDidLoad() {
    super.viewDidLoad()

    // set tint color for all subviews in searchBar that are of type UITextField
    setTextFieldTintColor(to: UIColor.darkText, for: searchBar)
}    

func setTextFieldTintColor(to color: UIColor, for view: UIView) {
    if view is UITextField {
        view.tintColor = color
    }
    for subview in view.subviews {
        setTextFieldTintColor(to: color, for: subview)
    }
}

Hasil akhirnya terlihat seperti ini:

UISearchBar dengan kursor berwarna berbeda dan tombol batal.

person Derek Soike    schedule 24.02.2017

Coba ini hanya satu baris kode untuk menyelesaikan masalah Anda, Ubah properti kursor tintColor dari putih menjadi biru.

  searchBar.tintColor = [UIColor blueColor];

Semoga ini bisa membantu seseorang.

person Jaywant Khedkar    schedule 16.08.2018

Kursor Anda berwarna putih karena properti tintColor Anda di UISearchBar disetel menjadi putih.

Jika Anda ingin Batal menjadi putih, tetapi kursor menjadi hitam, Anda dapat menggunakan: UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).tintColor = .black

person Radek Wilczak    schedule 16.02.2018