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


122

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

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

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

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

Ответы:


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)


}

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


2

НОТА:

линия

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

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

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


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)
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.