จะเปลี่ยนข้อความปุ่มใน 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

3
ฉันคิดว่ามันช่วยในการพูดถึง: buttonเป็นIBOutlet(ตรงกันข้ามกับIBActionที่มีบรรทัดของโค้ดนี้) หากคุณใช้ประโยชน์จาก Storyboard
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" สำหรับ: .Normal) และเป็นตัวแปรที่ใช้งานได้สำหรับ Xcode เวอร์ชันแรกพร้อมการสนับสนุนที่รวดเร็ว 3.0
Nikola Lukic

7

ตอนนี้มันคือสำหรับ swift 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 ในภายหลัง Normal กลายเป็น. normal
Nikola Lukic


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.