Як змінити текст кнопки в Swift Xcode 6?


122

Ось що я намагаюся зробити. Якщо ви коли-небудь грали в Halo або CoD, ви б знали, що можете змінити назву вивантаження зброї.

Те, що я роблю, - це зробити так, щоб ви могли змінити ім’я для завантаження за допомогою текстового поля. Ось проблема, назва завантаження в меню завантаження - це кнопка (щоб вибрати та переглянути інформацію про це завантаження), і я можу просто написати це:

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

За винятком цього [classTopButton] є кнопкою, яка не дозволяє суфікс '.text'

Відповіді:


322

Ви можете зробити:

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

Swift 3 і 4:

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

14
Або трохи коротше. Ви можете опустити UIControlStateчастину і просто так написати button.setTitle("my text here", forState: .Normal).
мустафа

3
Я думаю, що це допомагає зазначити: buttonце IBOutlet(на відміну від того, IBActionякий містить цей рядок коду), якщо ви використовуєте «Розгорнуту дошку»
Сергі

23

У Xcode 8 - Swift 3 :

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


3
Другий аргумент зараз .normalзамість .Normal.
Тед Хопп

1
Капітал .Normalзараз помилиться. Нижній кут тепер правильний. .normal
Танець Джошуа

Треба сказати, що оригінальною відповіддю було: button.setTitle ("entertext", для: .Normal), і це працює варіант для першої версії Xcode із швидкою підтримкою 3.0
Nikola Lukic

7

Це зараз для швидкого 3,

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

(Постійне декларування змінної не потрібно, просто переконайтеся, що ви використовуєте відправника за допомогою кнопки, як це):

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

Пам'ятайте, що це використовується всередині IBAction вашої кнопки.


3

Ви можете використовувати аргумент відправника

  @IBAction func TickToeButtonClick(sender: AnyObject) {

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


}

Це працює варіант для першої версії Xcode із швидкою підтримкою 3.0 пізніше. Нормальне стає .нормальним
Nikola Lukic


2

ПРИМІТКА:

рядок

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

працює лише тоді, коли тип заголовка є звичайним .

введіть тут опис зображення


1

Зауважте, що якщо ви використовуєте NSButton, функція не є setTitle, натомість це властивість.

@IBOutlet weak var classToButton: NSButton!

. . .


classToButton.title = "Some Text"

1

У Swift 4 я спробував усе це раніше, але працює лише:

@IBAction func myButton(sender: AnyObject) {
   sender.setTitle("This is example text one", for:[])
   sender.setTitle("This is example text two", for: .normal)
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.