Làm thế nào để bạn thiết lập văn bản trong một NSTextField?


134

Tôi đang cố gắng đặt văn bản trong NSTextField, nhưng các phương thức -setStringValue:-setTitleWithMnemonic:không hoạt động. Có ý kiến ​​gì không?


NSTextField của bạn có được tham chiếu như một IBOutlet và được đính kèm đúng không (nếu bạn đang sử dụng Trình tạo giao diện ...)
jlindenbaum

Câu trả lời:


229

setStringValue:là cách để làm điều đó Bạn nên chắc chắn rằng ổ cắm của bạn đang được đặt đúng. (Trong trình gỡ lỗi, đảm bảo biến trường văn bản của bạn không rỗng.)


22
Cách để làm điều này trong Swift chỉ là stringValue, sau đó bạn có thể đặt nó thành bất kỳ chuỗi nào bạn muốn.
Christopher Spencer

43

Chỉ cần làm một cái gì đó như thế này:

myLabel.stringValue = @"My Cool Text";

17

Chỉ cần myLabel.stringValue = "MY TEXT"hoạt động ở đây, sử dụng Swift và Xcode 6.


Đây là một câu trả lời tốt cho môi trường dev gần đây nhất. Btw tại sao đây không phải là một phần của tài liệu NSTextField? Tôi đã đến đó trước và nghĩ rằng sẽ rất rõ ràng để tìm cách làm điều này, nhưng nó không ở đó ... EDIT: Tôi đã tìm thấy nó, nó chỉ không ở vị trí rõ ràng của "Chủ đề", bởi vì chuỗiValue thực sự là một tài sản của lớp cha mẹ NSControl và xuất hiện trong "Tổng quan"
wllychng

8

Swift 4

self.yourTextField.stringValue = "Your_Value"

Lưu ý: Tìm nạp giá trị từ self.yourTextField.opesValue tại đó sẽ nhận được thông báo cảnh báo tức là Tin nhắn cảnh báo Để tránh loại cảnh báo này, bạn có thể sử dụng như thế này (cách được đề xuất)

DispatchQueue.main.async {
 your code ... 
} 

HOẶC cũng đề cập đến điều này .


1

Nếu giá trị bạn đang cố gắng đặt là một số nguyên chứ không phải là một chuỗi, bạn không cần phải chuyển đổi giá trị số nguyên thành một chuỗi theo cách thủ công; bạn chỉ có thể gọi:

myLabel.integerValue = i;

Các integerValuetài sản được xác định trên NSTextFieldtầng lớp phụ huynh 's, NSControl. Xem trang tài liệu được liên kết đó để biết danh sách đầy đủ các phương pháp mà nó hỗ trợ.


0

Mục tiêu:

[label setStringValue: @"I am a label"];

mã gốc tôi sử dụng trong mã của mình để hiển thị phiên bản ứng dụng là:

    [lblVersion setStringValue:[NSString stringWithFormat:@"v%@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]]];

-3

chỉ làm điều này

[textField setString:@"random"];

2
Sai lầm. Đây là cách bạn thiết lập a UITextField. Câu hỏi là về ca cao NSTextField là một động vật khác.
Vịt
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.