2009-10-28 22 views
8

Làm thế nào để bạn tạo một NSButton theo chủ đề tùy chỉnh? Tôi không có nghĩa là theo một cách nhỏ như thay đổi màu nền hoặc thay đổi từ các cạnh tròn thành các cạnh vuông. Tôi muốn thay thế toàn bộ giao diện của nút. Điều đó thậm chí có thể làm trong Cocoa? Rõ ràng tôi sẽ phải phân lớp lớp NSButton và đi từ đó. Bất kì sự trợ giúp nào đều được đánh giá cao.Làm cách nào để tạo một NSButton theo chủ đề tùy chỉnh?

Trả lời

12

Thực ra, bạn cần phải phân loại NSButtonCell. Bạn nên đọc Apple's documentation về điều này để hiểu rõ hơn về cách chúng tương tác. Bạn có thể vẫn muốn phân lớp NSButton để nó cũng sẽ sử dụng lớp con NSButtonCell của bạn.

Đối với một nút, hầu hết công việc được thực hiện trong drawBezelWithFrame:inView:. Nếu bạn muốn thay đổi cách văn bản hoặc hình ảnh được vẽ, bạn sẽ ghi đè drawText:withFrame:inView:drawImage:withFrame:inView:.

+4

Đúng, đó là cách tốt nhất để làm điều đó. Lưu ý, nếu bạn đang sử dụng Trình tạo giao diện và Mac OS 10.5, bạn không còn phải phân lớp NSButton nữa. Chỉ cần kéo/thả nút trong ngòi bút của bạn và sau đó thay đổi lớp tế bào thành lớp tùy chỉnh của bạn. – Leibowitzn

+1

Điều này đúng. Hơn nữa, thời gian duy nhất bạn thực sự cần phải phân lớp 'NSButton' là nếu bạn đang tạo các điều khiển theo lập trình. – Alex

+1

Tôi có thể chỉ muốn thay thế giao diện bằng cách đặt thuộc tính không? Tôi đã có thể thay đổi diện mạo bằng cách sử dụng thuộc tính "hình ảnh" của nút nhưng tôi có hình chữ nhật màu xám xấu xí bất cứ khi nào nút tùy chỉnh được nhấp (hình ảnh có độ trong suốt). Cảm ơn. – adib

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