2010-02-25 32 views
5

Tôi có thể làm việc với NSTokenField, nó rất dễ sử dụng .. nhưng tôi muốn đề xuất của bạn về cách tôi có thể tùy chỉnh nó giống như trong trường "To/CC" trong mac mail ie. khi không. các mã thông báo trong trường mã thông báo tăng chiều cao của trường "Tới" được tăng lên đến một giới hạn nhất định sau đó cuộn tròn dọc bắt đầu xuất hiện!cách tùy chỉnh NSTokenField như trong trường "Tới/CC" trong thư mac?

Theo mặc định khi chúng tôi sử dụng trường mã thông báo, chiều cao của nó không tăng hoặc cuộn dọc sẽ xuất hiện! Tôi đã thử kết hợp khác nhau trong IB nhưng tôi không thể có được thư mac như chức năng.

Có ai có thể đề xuất cho tôi một số giải pháp cho nó không ??

Trả lời

3

Bạn sẽ phải phân lớp NSTokenField để có được chức năng bạn muốn. Hãy chắc chắn và gọi setWraps: YES.

Khi nội dung của trường mã thông báo thay đổi, bạn sẽ phải tính toán kích thước yêu cầu của trường mã thông báo và tự thay đổi kích cỡ mã thông báo. Cùng với việc thêm một thanh cuộn. Sau khi chiều cao của trường mã thông báo đạt đến một số kích thước, bạn sẽ chèn chế độ xem cuộn vào trường. Ngược lại, khi tính lại kích thước trường mã thông báo nhỏ hơn kích thước quan trọng, bạn sẽ xóa chế độ xem cuộn.

Đây là một số lượng đáng kể công việc (tôi đã tìm thấy) để hoạt động chính xác. Apple nói rằng NSTokenField "cung cấp chỉnh sửa tokenized tương tự như trường địa chỉ trong ứng dụng Mail", nhưng nó thực sự không phải là tương tự ở tất cả vì nó không có kích thước được xây dựng trong và kéo và thả là problematical cho bất cứ điều gì ngoại trừ văn bản.

+0

thanx .... cho trả lời của bạn :) Tôi chắc chắn sẽ dùng thử! – Devarshi

2

Tôi có thể đạt được điều này bằng cách sử dụng IFVerticallyExpandingTextField. Bởi vì NSTokenField kế thừa từ NSTextField, tôi đã thực hiện IFVerticallyExpandingTextField kế thừa từ NSTokenField và sau đó được phân lớp IFVerticallExpandingTextField để thực hiện tất cả những thứ tôi cần làm với phiên bản NSTokenField của mình.

Điều này chỉ nên thả vào. Ngay lập tức nó sẽ bắt đầu hoạt động.

+0

Liên kết đã chết ... – markjs

+0

Sự thay đổi 'quyền sở hữu' của cocoadev.com khiến cho nó trở nên hơi sôi nổi. Nontheless một google đơn giản "trang web: cocoadev.com" IFVerticallyExpandingTextField tìm thấy (rất xấu định dạng) mã: http://cocoadev.com/IFVerticallyExpandingTextField –

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