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).
mustafa 2014-10-29

3
: 나는 그것을 언급하는 데 도움이 생각 buttonIBOutlet(와 대조적으로 IBAction이 코드 줄을 포함하는) 스토리 보드를 활용하는 경우.
Sergi

23

Xcode 8- Swift 3 :

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


3
두 번째 인수는 이제 .normal대신 .Normal.
Ted Hopp

1
자본 .Normal은 지금 오류를 줄 것입니다. Undercase는 이제 정확합니다. .normal
Joshua Dance

원래 대답은 다음과 같습니다. button.setTitle ( "entertext", for : .Normal) 그리고 신속하게 3.0을 지원하는 Xcode의 첫 번째 버전에서 작동하는 변형입니다
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)


}

그것은 나중에 신속한 3.0 지원과 함께 Xcode의 첫 번째 버전에 대한 작동 변형입니다. Normal은 .normal이됩니다
Nikola


2

노트:

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

제목 유형이 일반인 경우에만 작동합니다 .

여기에 이미지 설명 입력


1

NSButton을 사용하는 경우 setTitlefunc 가없는 대신 속성입니다.

@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)
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.