Làm cách nào để thay đổi văn bản nút trong Swift Xcode 6?


122

Đây là những gì tôi đang cố gắng làm. Nếu bạn đã từng chơi Halo hoặc CoD, bạn sẽ biết rằng bạn có thể thay đổi tên của vũ khí nạp.

Những gì tôi đang làm là tạo ra nó để bạn có thể thay đổi tên tải của mình bằng cách sử dụng trường văn bản. Đây là vấn đề, tên tải ra trong trình đơn tải ra là một nút (để chọn và xem thông tin về lần tải ra đó) và tôi chỉ có thể viết thế này:

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

Ngoại trừ nó [classTopButton] là một nút không cho phép hậu tố '.text'

Câu trả lời:


322

Bạn có thể làm:

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

Swift 3 và 4:

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

14
Hoặc ngắn hơn một chút. Bạn có thể bỏ qua UIControlStatemột phần và chỉ cần viết như thế button.setTitle("my text here", forState: .Normal).
mustafa

3
Tôi nghĩ rằng nó hữu ích để đề cập: buttonlà một IBOutlet(trái ngược với IBActionchứa dòng mã này) nếu bạn đang tận dụng Bảng phân cảnh.
Sergi

23

Trong Xcode 8 - Swift 3 :

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


3
Đối số thứ hai bây giờ là .normalthay vì .Normal.
Ted Hopp

1
Capital .Normalsẽ đưa ra một lỗi ngay bây giờ. Viết hoa bây giờ là chính xác. .normal
Joshua Dance

Tôi phải nói rằng câu trả lời ban đầu là: button.setTitle ( "entertext", cho: .Normal) và nó là biến thể làm việc cho phiên bản đầu tiên của Xcode với sự hỗ trợ nhanh chóng 3,0
Nikola Lukic

7

Bây giờ là cái này Đối với swift 3,

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

(Không cần khai báo hằng số của biến, chỉ cần đảm bảo bạn sử dụng người gửi từ nút như thế này):

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

Hãy nhớ điều này được sử dụng bên trong IBAction của nút của bạn.


3

Bạn có thể Sử dụng đối số người gửi

  @IBAction func TickToeButtonClick(sender: AnyObject) {

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


}

Nó được biến thể làm việc cho phiên bản đầu tiên của Xcode với sự hỗ trợ nhanh chóng 3,0 sau .Normal trở thành .normal
Nikola Lukic

2

nhanh chóng 4 làm việc cũng như 3

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

nơi libero là một uibutton


2

GHI CHÚ:

hàng

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

chỉ hoạt động khi loại tiêu đề là Plain .

nhập mô tả hình ảnh ở đây


1

Lưu ý rằng nếu bạn đang sử dụng NSButton thì không có setTitlefunc, thay vào đó, nó là một thuộc tính.

@IBOutlet weak var classToButton: NSButton!

. . .


classToButton.title = "Some Text"

1

Trong Swift 4, tôi đã thử tất cả những điều này trước đây, nhưng chỉ chạy:

@IBAction func myButton(sender: AnyObject) {
   sender.setTitle("This is example text one", for:[])
   sender.setTitle("This is example text two", for: .normal)
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.