Halbtransparentes Fenster

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Halbtransparentes Fenster

    Hallo,
    wie kann man ein Fenster durchsichtig machen und ihm eine Hintergrundfarbe geben? Ich habe bisher immer nur Seiten gefunden, die das Fenster komplett verschwinden lassen.

    Mein Ziel ist es den iMac Bildschirm damit ein bisschen abzudunkeln, ohne das der externe Monitor auch dunkler wird, deshalb dachte ich mir, mache ich doch ein Fenster, welches ich Dan auf dem iMac Anzeige. Habt ihr andere Lösungen für mein Problem?

    Vielen Dank
  • Wenn Du willst, dass der Bildschirm so aussieht als wäre er aus, solltest Du ein ganz schwarzes Fenster drüber malen, oder?

    Aber egal - probier' mal das hier:

    Quellcode

    1. NSRect screenRect = [[NSScreen mainScreen] frame];
    2. NSWindow* win = [[NSWindow alloc] initWithContentRect:screenRect
    3. styleMask:NSBorderlessWindowMask
    4. backing:NSBackingStoreBuffered
    5. defer:NO];
    6. [win setOpaque:NO];
    7. [win setLevel:NSScreenSaverWindowLevel];
    8. [win setBackgroundColor:[NSColor colorWithDeviceWhite:0.0f alpha:0.7f]];
    9. [win orderFront:self];
    Multigrad - 360°-Produktfotografie für den Mac
  • Hallo,

    kurze Anmerkung hierzu:

    Quellcode

    1. [NSScreen mainScreen]


    Sehe ich oft in Verwendung. Gemeint ist aber in den meisten Fällen eher:

    Quellcode

    1. +(NSScreen*)primaryScreen
    2. {
    3. NSArray *screens = [NSScreen screens];
    4. if([screens count] < 1)
    5. {
    6. return nil;
    7. }
    8. return [screens objectAtIndex:0];
    9. }
    Alles anzeigen


    Nicht als Kritik, sondern als allgemeiner Hinweis gemeint.

    Viele Grüße
  • - mainScreen hat den keyboard Fokus (also wechselt ggf.)
    - screens[0] hat den Menübalken (ist fest)

    Außerdem sollte man den screen explizit bei initWithContentRect:styleMask:backing:defer:screen: angeben. Der Default (screen:nil) ist der mainScreen. Insofern ist der Code von mattik schlüssig, aber vielleicht nicht das was man haben will.