Saya memiliki desain yang mengimplementasikan biru tua UITextField
, karena teks placeholder secara default warna abu-abu tua saya hampir tidak bisa melihat apa kata teks placeholder.
Saya sudah googled masalah tentu saja tetapi saya belum menemukan solusi saat menggunakan bahasa Swift dan tidak Obj-c.
Apakah ada cara untuk mengubah warna teks placeholder dalam UITextField
menggunakan Swift?
emailTextField
?myTextField.attributedPlaceholder = NSAttributedString(string: "placeholder text", attributes: [NSForegroundColorAttributeName: UIColor.white])
Anda dapat melakukannya dengan cepat, tanpa menambahkan satu baris kode, menggunakan Interface Builder.
Pilih
UITextField
dan buka inspektur identitas di sebelah kanan:Klik tombol plus dan tambahkan atribut runtime baru:
placeholderLabel.textColor (Swift 4)
_placeholderLabel.textColor (Swift 3 atau kurang)
Gunakan Warna sebagai jenis dan pilih warna.
Itu dia.
Anda tidak akan melihat hasilnya sampai Anda menjalankan aplikasi Anda lagi.
sumber
Buat
UITextField
Ekstensi seperti ini:Dan di storyboard atau .xib Anda. Kamu akan lihat
sumber
placeHolderColor
! Jika Anda mengembalikan nilai properti yang dihitung sendiri dari pengambil properti, pengambil akan dipanggil lagi dari dalam pengambil, menghasilkan rekursi yang tak terbatas. (Lihat: stackoverflow.com/a/42334711/2062785 )attributedString
huruf pertama (jika tidak kosong) dan kembalikan warna teksnyanil
.Di Swift 3.0, Gunakan
Di Siwft 5.0 + Gunakan
sumber
Kode ini berfungsi di Swift3:
beri tahu saya jika Anda memiliki masalah.
sumber
setValue
untuk mengakses properti pribadi. Gunakan API publik yang tepat.#colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
Untuk mengatur warna placeholder sekali untuk semua
UITextField
di aplikasi Anda yang dapat Anda lakukan:Ini akan mengatur warna yang diinginkan untuk semua
TextField
placeholder di seluruh aplikasi. Tetapi ini hanya tersedia sejak iOS 9.Tidak ada metode kemunculanWhenContainedIn .... () sebelum iOS 9 di swift tetapi Anda dapat menggunakan salah satu solusi yang disediakan di sini penampilanWhenContainedIn in Swift
sumber
Dalam kasus saya, saya menggunakan Swift 4
Saya membuat ekstensi untuk UITextField
sumber
Xcode 9.2 Swift 4
sumber
Swift 4:
Tujuan-C:
sumber
Berikut ini adalah implementasi cepat saya untuk swift 4:
gunakan seperti:
semoga membantu seseorang!
sumber
Swift 3 (mungkin 2), Anda bisa mengganti didSet pada placeholder di
UITextField
subclass untuk menerapkan atribut di atasnya, dengan cara ini:sumber
Untuk Swift
Buat Ekstensi UITextField
Jika Anda diatur dari storyboard.
sumber
Untuk Swift 3 dan 3.1 ini berfungsi dengan baik:
sumber
Untuk Swift 4.0, X-code 9.1 versi atau iOS 11 Anda dapat menggunakan sintaks berikut untuk memiliki warna placeholder yang berbeda
sumber
Saya terkejut melihat berapa banyak solusi buruk yang ada di sini.
Ini adalah versi yang akan selalu berfungsi.
Cepat 4.2
TIP : Jika Anda mengubah teks placeholder setelah mengatur warna- warna akan mengatur ulang.
sumber
sumber
pembaruan jawaban crubio untuk Swift 4
Pilih UITextField dan buka inspektur identitas di sebelah kanan:
Klik tombol plus dan tambahkan atribut runtime baru: placeholderLabel.textColor (alih-alih _placeholderLabel.textColor)
Gunakan Warna sebagai jenis dan pilih warna.
Jika Anda menjalankan proyek Anda, Anda akan melihat perubahannya.
sumber
Untuk swift 4.2 dan di atasnya, Anda dapat melakukannya seperti di bawah ini:
sumber
Dalam kasus saya, saya telah melakukan yang berikut:
sumber
Di sini saya menulis semua UIDesignable dari UITextField. Dengan bantuan kode ini, Anda dapat langsung mengaksesnya dari Inspektur file UI di storyboard
sumber
Untuk Swift
Anda bisa menggunakan ini;
sumber
Ini lebih tentang mempersonalisasi textField Anda, tetapi saya akan membagikan kode ini dari halaman lain dan membuatnya sedikit lebih baik:
Dan Anda dapat menggunakannya seperti ini:
Mengetahui bahwa Anda memiliki
UITextField
koneksi keViewController
.Sumber: http://codepany.com/blog/swift-3-custom-uitextfield-with-single-line-input/
sumber
Untuk Tujuan C :
Untuk Swift :
sumber
Kode C objektif untuk mengubah warna teks placeholder.
Pertama-tama impor kelas objc / runtime ini -
lalu ganti nama bidang teks Anda -
sumber
untuk iOS13
sumber
Gunakan seperti ini di Swift,
Dalam Tujuan C
sumber
sumber
Gunakan ini untuk menambahkan placeholder yang dikaitkan:
sumber
Untuk Swift 4
sumber
sumber