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'

GuavaMantis
sumber

Jawaban:

322

Anda dapat melakukan:

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

Swift 3 dan 4:

button.setTitle("my text here", for: .normal)
Steve Rosenberg
sumber
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 )

Nikola Lukic
sumber
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.

Ty Victorson
sumber
3

Anda bisa menggunakan argumen pengirim

  @IBAction func TickToeButtonClick(sender: AnyObject) {

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


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

cepat 4 pekerjaan serta 3

libero.setTitle("---", for: .normal)

di mana libero adalah uibutton

Giacomo Sighinolfi
sumber
2

CATATAN:

baris

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

hanya berfungsi jika jenis Judul adalah Biasa .

masukkan deskripsi gambar di sini

giacoder
sumber
1

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

@IBOutlet weak var classToButton: NSButton!

. . .


classToButton.title = "Some Text"
Nathan F.
sumber
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)
}
Grzegorz R. Kulesza
sumber