Как изменить текст кнопки в Swift Xcode 6?

122

Вот что я пытаюсь сделать. Если вы когда-либо играли в Halo или CoD, вы знаете, что можете изменить название загрузки оружия.

Я делаю так, чтобы вы могли изменить название своей загрузки с помощью текстового поля. Вот в чем проблема, имя загрузки в меню загрузки - это кнопка (для выбора и просмотра информации об этой загрузке), и я мог бы просто написать это:

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

Кроме того, [classTopButton] - это кнопка, которая не позволяет использовать суффикс '.text'

GuavaMantis
источник

Ответы:

323

Ты можешь сделать:

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).
mustafa
3
Думаю, buttonстоит упомянуть: IBOutlet(в отличие от IBActionстроки, содержащей эту строку кода), если вы используете Storyboard.
Sergi
23

В Xcode 8 - Swift 3 :

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

Никола Лукич
источник
3
Второй аргумент теперь .normalвместо .Normal.
Тед Хопп
1
Capital .Normalтеперь выдаст ошибку. Нижний регистр теперь правильный. .normal
Джошуа Дэнс
Я должен сказать, что исходный ответ был: button.setTitle ("entertext", для: .Normal), и это рабочий вариант для первой версии Xcode с поддержкой Swift 3.0
Никола Лукич
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)


}
mzonerz
источник
Это рабочий вариант для первой версии Xcode с поддержкой Swift 3.0 позже. Нормальный становится. Нормальным
Никола Лукич
2

быстрые 4 работают так же как 3

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

где либеро - это кнопка

Джакомо Сигинолфи
источник
2

НОТА:

линия

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

работает только при типе заголовка Обычный .

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

giacoder
источник
1

Обратите внимание, что если вы используете NSButton setTitle, вместо функции func это свойство.

@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)
}
Гжегож Р. Кулеша
источник