¿NSView tiene un color de fondo? si es asi no lo encuentro

Estoy viendo por todas partes en línea donde las personas se refieren a backgroundColor de NSView. Necesito configurar un backgroundColor personalizado para mi NSView, pero no veo esa propiedad. No puedo verlo en código, o en IB. No puedo configurar el color de fondo de mi NSView simple.

¿Qué podría estar perdiendo?

preguntado el 12 de junio de 12 a las 17:06

3 Respuestas

Deben estar pensando en UIView, que tiene un backgroundColor propiedad. NSViewno tiene un backgroundColor propiedad.

Tendrá que lograr su efecto de alguna otra manera, por ejemplo, a través de subclases NSView.

Respondido el 12 de junio de 12 a las 17:06

Es realmente extraño que no tengan un método listo para usar para cambiar el color de fondo de una vista. Gracias por la respuesta - Westley

@Wes: Eso es porque NSView, por sí mismo, realmente no hace nada. No dibuja nada. Me cuesta mucho imaginar una situación en la que necesitaría establecer el color de fondo pero aún no está subclasificando la vista. - dietrich epp

Por extraño que parezca, NSView no proporciona esto (suspiro). Uso una clase consistente que escribí yo mismo en todos mis proyectos de macOs. Simplemente cambie la clase CustomView en la pestaña Identity Inspector en IB a ColorView. Luego podrá establecer el color de fondo en el Inspector de atributos, tal como lo haría para una UIView. Aquí está el código, ¡espero que esto ayude!

import Cocoa

class ColorView: NSView
{
    @IBInspectable var backgroundColor:NSColor?

    required init?(coder decoder: NSCoder)
    {
        super.init(coder: decoder)
        wantsLayer = true
    }

    override init(frame frameRect: NSRect)
    {
        super.init(frame: frameRect)
        wantsLayer = true
    }

    override func layout()
    {
        layer?.backgroundColor = backgroundColor?.cgColor
    }
}

Respondido el 06 de diciembre de 17 a las 10:12

Puede llegar a él a través de la capa de la vista, por ejemplo (en Swift):

      view.layer?.backgroundColor = NSColor.blue.cgColor

Extrañamente se puede configurar en el xib. En el inspector de identidad de la vista, agregue el atributo de tiempo de ejecución definido por el usuario backgroundColor, con el color Tipo.

respondido 22 mar '17, 21:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.