2014-10-29 18 views
78

Đâ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 một vũ khí tải ra.Làm thế nào để thay đổi văn bản nút trong Swift Xcode 6?

Điều tôi đang làm là làm cho nó để bạn có thể thay đổi tên tải của mình bằng một trường văn bản. Đây là vấn đề, tên tải-out trong menu load-out là một nút (để chọn và xem thông tin về điều đó tải-out) và tôi chỉ có thể viết này:

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

Trừ nó [classTopButton] là một nút mà không cho phép hậu tố của .text '

Trả lời

205

Bạn có thể làm:

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

Swift 3:

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

Hoặc chút ngắn hơn. Bạn có thể bỏ qua phần 'UIControlState' và chỉ viết như' button.setTitle ("văn bản của tôi ở đây", forState: .Normal) '. – mustafa

+2

Tôi nghĩ rằng nó giúp đề cập đến: 'nút' là một' IBOutlet' (trái ngược với 'IBAction' chứa dòng mã này) nếu bạn đang tận dụng Storyboard. – whalesharkie

15

Trong Xcode 8 - Swift 3:

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

+1

Đối số thứ hai bây giờ là '.normal' thay vì' .Normal'. –

+0

Vốn '.Normal' sẽ đưa ra lỗi ngay bây giờ. Undercase bây giờ là chính xác. '.normal' –

0

Bạn có thể sử dụng người gửi tranh luận

@IBAction func TickToeButtonClick(sender: AnyObject) { 

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


} 
0

Lưu ý rằng nếu bạn đang sử dụng NSButton không có setTitle func, thay vào đó, nó là một tài sản .

@IBOutlet weak var classToButton: NSButton! 

. . . 


classToButton.title = "Some Text" 
5

bây giờ điều này là Đối nhanh chóng 3,

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

(Tờ khai liên tục của biến là không cần thiết 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.

0

nhanh chóng 4 công việc cũng như 3

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

nơi libero là một UIButton

0

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) 
} 
Các vấn đề liên quan