2009-10-28 19 views
8

¿Cómo se crea un NSButton temático personalizado? No me refiero a una pequeña manera, como cambiar el color de fondo o cambiar de bordes redondeados a bordes cuadrados. Quiero reemplazar toda la apariencia del botón. ¿Es eso posible en Cocoa? Obviamente tendré que subclasificar la clase NSButton e ir desde allí. Cualquier ayuda sería muy apreciada.¿Cómo se crea un NSButton temático personalizado?

Respuesta

12

En realidad, necesita la subclase NSButtonCell. Debe leer Apple's documentation para obtener una mejor comprensión de cómo interactúan. Probablemente aún desee subclasificar NSButton para que también use su subclase NSButtonCell.

Para un botón, la mayoría del trabajo se realiza en drawBezelWithFrame:inView:. Si desea modificar la forma en que se dibuja el texto o la imagen, anularía drawText:withFrame:inView: y drawImage:withFrame:inView:.

+4

Sí, esa es la mejor manera de hacerlo. Nota, si está utilizando Interface Builder y Mac OS 10.5 ya no tiene que subclase NSButton. Simplemente arrastre/suelte el botón en su plumilla y luego cambie la clase de celda a su clase personalizada. – Leibowitzn

+1

Esto es cierto. Más, el único momento en el que realmente necesitaría subclase 'NSButton' es si estaba creando los controles mediante programación. – Alex

+1

¿Puedo simplemente reemplazar la apariencia estableciendo una propiedad? Pude cambiar la apariencia mediante el uso de la propiedad "imagen" del botón, pero tengo un rectángulo gris feo cada vez que se hace clic en el botón personalizado (la imagen tiene una transparencia). Gracias. – adib

Cuestiones relacionadas