Bagaimana cara mengubah teks tombol di Swift Xcode 6?


122

Inilah yang saya coba lakukan. Jika Anda pernah memainkan Halo atau CoD, Anda akan tahu bahwa Anda dapat mengubah nama pemuatan senjata.

Apa yang saya lakukan adalah membuatnya sehingga Anda dapat mengubah nama pemuatan menggunakan bidang teks. Inilah masalahnya, nama muat keluar di menu muat keluar adalah tombol (untuk memilih dan melihat info tentang pemuatan itu) dan saya bisa menulis ini:

@IBAction func renameClassButton(sender: AnyObject) {
    classTopButton.text = "\(classTopTextField)"
}

Kecuali itu [classTopButton] adalah tombol yang tidak mengizinkan akhiran '.text'

Jawaban:


322

Anda dapat melakukan:

button.setTitle("my text here", forState: .normal)

Swift 3 dan 4:

button.setTitle("my text here", for: .normal)

14
Atau sedikit lebih pendek. Anda dapat menghilangkan UIControlStatesebagian dan hanya menulis suka button.setTitle("my text here", forState: .Normal).
mustafa

3
Saya pikir ada baiknya untuk menyebutkan: buttonadalah IBOutlet(berbeda dengan IBActionyang berisi baris kode ini) jika Anda memanfaatkan Storyboard.
Sergi

23

Di Xcode 8 - Swift 3 :

button.setTitle( "entertext" , for: .normal )


3
Argumen kedua sekarang .normalsebagai ganti .Normal.
Ted Hopp

1
Modal .Normalakan memberikan kesalahan sekarang. Huruf kecil sekarang sudah benar. .normal
Joshua Dance

Saya harus mengatakan jawaban asli adalah: button.setTitle ("entertainext", untuk: .Normal) dan ini merupakan varian yang berfungsi untuk versi pertama Xcode dengan dukungan swift 3.0
Nikola Lukic

7

Sekarang inilah For swift 3,

    let button = (sender as AnyObject)
    button.setTitle("Your text", for: .normal)

(Deklarasi konstan variabel tidak diperlukan, cukup pastikan Anda menggunakan pengirim dari tombol seperti ini):

    (sender as AnyObject).setTitle("Your text", for: .normal)

Ingat ini digunakan di dalam IBAction tombol Anda.


3

Anda bisa menggunakan argumen pengirim

  @IBAction func TickToeButtonClick(sender: AnyObject) {

        sender.setTitle("my text here", forState: .normal)


}

Ini adalah varian yang berfungsi untuk versi pertama Xcode dengan dukungan swift 3.0 nanti. Normal menjadi .normal
Nikola Lukic


2

CATATAN:

baris

someButton.setTitle("New Title", forState: .normal)

hanya berfungsi jika jenis Judul adalah Biasa .

masukkan deskripsi gambar di sini


1

Perhatikan bahwa jika Anda menggunakan NSButton tidak ada setTitlefunc, sebagai gantinya, ini adalah properti.

@IBOutlet weak var classToButton: NSButton!

. . .


classToButton.title = "Some Text"

1

Di Swift 4 saya mencoba semua ini sebelumnya, tetapi hanya berjalan:

@IBAction func myButton(sender: AnyObject) {
   sender.setTitle("This is example text one", for:[])
   sender.setTitle("This is example text two", for: .normal)
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.