2012-02-28 40 views
10

Tôi có thể nhận giá trị của một NSTokenField bằng cách thực hiện [NSTokenField stringValue] nhưng điều này không trả lại mã thông báo riêng lẻ. Những gì tôi đang cố gắng để có được là các lĩnh vực mã thông báo trong một mảng i.e ['token', 'token2'].Nhận mã thông báo từ NSTokenField

Tôi hơi thiếu hiểu biết khi nói đến Cocoa/Objective-c vì vậy tôi sẽ không ngạc nhiên nếu tôi thiếu điều gì đó hiển nhiên.

NSTokenField không phản hồi count vì vậy tôi không chắc chắn liệu có thể lấy lại mã thông báo hay không.

Cảm ơn.

+1

Không có ký tự dấu phân cách nhất quán trong kết quả của 'stringValue'? Chỉ cần sử dụng ['componentsSeparatedByString:'] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/doc/uid/20000154 -componentsSeparatedByString_). –

Trả lời

23

Từ the Apple documentation:

Để lấy các đối tượng đại diện bởi các thẻ trong một lĩnh vực thẻ, gửi lĩnh vực thẻ một thông objectValue. Mặc dù phương thức này được khai báo bằng NSControl, NSTokenField triển khai phương thức này để trả về một mảng các đối tượng được biểu diễn. Nếu trường mã thông báo chỉ chứa một chuỗi các chuỗi, thì objectValue sẽ trả về một mảng các chuỗi. Để thiết lập các đối tượng được biểu diễn của một trường mã thông báo, sử dụng phương thức setObjectValue:, truyền vào một mảng các đối tượng được biểu diễn. Nếu các đối tượng này không phải là chuỗi, thì NSTokenField sau đó truy vấn đại biểu của nó cho chuỗi hiển thị để sử dụng cho từng mã thông báo.

+0

Tuyệt vời! Sẽ rất tuyệt nếu có một mã thông báo @property thuộc loại NSArray, hoặc ít nhất cùng mô tả ở trên trên trang tham chiếu Lớp của NSTokenField ... Cảm ơn câu trả lời của bạn – Heartinpiece

Các vấn đề liên quan