Saya memiliki UITextView *_masterText
dan setelah setText
font properti metode panggilan sedang diatur ulang. Itu terjadi setelah saya mengubah SDK 7. _masterText adalah IBOutlet
, global dan properti diatur dalam storyboard. Hanya saya atau ini bug SDK umum?
@interface myViewController : UIViewController
{
IBOutlet UITextView *_masterText;
}
@implementation myViewController
-(void)viewWillAppear:(BOOL)animated
{
[_masterText setText:@"New text"];
}
ios
cocoa-touch
fonts
uitextview
Błażej
sumber
sumber
Saya mengalami masalah yang sama (pada Xcode 6.1) dan sementara jawaban John Cogan bekerja untuk saya, saya menemukan bahwa memperluas kelas UITextView dengan kategori adalah solusi yang lebih baik untuk proyek khusus saya.
antarmuka
penerapan
sumber
extension UITextView { func setSafeText(text: String){ let originalSelectable = selectable selectable = true self.text = text selectable = originalSelectable } }
Jika Anda ingin tampilan teks Anda menjadi "hanya baca" Anda dapat memeriksa Diedit dan Dipilih dan hapus centang Interaksi Pengguna Diaktifkan, dengan ini UITextView berperilaku seperti yang saya inginkan
sumber
Seandainya masalah ini sendiri dan jawaban di atas membantu tetapi saya menambahkan pembungkus ke kode ViewController saya sebagai berikut dan hanya meneruskan contoh uiview dan teks untuk berubah dan fungsi pembungkus mengaktifkan nilai yang dipilih pada, mengubah teks dan kemudian mematikannya lagi. Bermanfaat saat Anda membutuhkan uitextview dinonaktifkan setiap saat secara default.
sumber
EDIT:
Mengatur font untuk UITextView di iOS 7 berfungsi untuk saya jika pertama-tama Anda mengatur teks dan setelah itu Anda mengatur font:
Pada file XIB, jika Anda menambahkan beberapa teks di UITextView Anda dan mengubah font atau warna itu akan berfungsi.
sumber
Inilah solusi subclass cepat yang sering saya gunakan untuk masalah ini.
sumber
Masalah ini muncul kembali dalam Xcode 8. Ini adalah bagaimana saya memperbaikinya:
Mengubah ekstensi menjadi:
dan memeriksa opsi yang dapat dipilih di Interface Builder.
Tidak terlalu elegan untuk memiliki parameter 'dapat dipilih' tetapi itu akan berhasil.
sumber
Di iOS 8.3, penyelesaian pengaturan "dapat dipilih" untuk YA sebelum setText, dan TIDAK setelahnya, tidak memperbaikinya untuk saya.
Saya menemukan saya perlu mengatur "dipilih" untuk YA di papan cerita juga, sebelum ini akan berhasil.
sumber
Ini bekerja untuk saya:
sumber
Bagi saya dengan teks yang dikaitkan, saya hanya perlu mengatur font di kamus atribut daripada mengaturnya di bidang itu sendiri.
sumber
Saya mengalami masalah ini. Solusi jawaban cepat @Ken Steele yang ramah. Saya memperluas UITextView dan menambahkan properti yang dihitung.
semoga membantu.
sumber
Sudah 3 tahun dan bug masih ada di versi stabil terbaru Xcode (7.3). Jelas apel tidak akan memperbaikinya dalam waktu dekat meninggalkan pengembang dengan dua opsi: meninggalkan yang dapat dipilih dan mengatur UserInteractionEnabled menjadi false atau Method swizzling.
Jika Anda memiliki tombol pada textView Anda, yang pertama tidak akan cukup.
Solusi no-code-change-requied dalam cepat:
Tujuan-C:
sumber
Menggunakan work-around yang dibahas dalam masalah ini, ekstensi untuk UITextView ini menyediakan
setTextInCurrentStyle()
fungsi. Didasarkan pada solusi oleh Alessandro Ranaldi tetapi tidak memerlukan nilai isSelectable saat ini untuk diteruskan ke fungsi.sumber