ich diesen Code eingestellt habe auf meinem App-Start ausgeführt wird:NSWindow Verschwindet
NSRect rect = NSMakeRect(0, 0, 200, 50); //The location of the window
NSWindow *win = [[NSWindow alloc] initWithContentRect:rect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];
[win setOpaque:NO];
[win setLevel:NSFloatingWindowLevel];
//[win setBackgroundColor:[NSColor clearColor]];
//or
NSView *myView = [[NSView alloc] initWithFrame: NSMakeRect(0, 0, 200, 50)];
NSButton *myButton = [[NSButton alloc] initWithFrame:NSMakeRect(10, 5, 180, 40)];
[myView addSubview: myButton];
[win setHidesOnDeactivate:NO];
[win setContentView: myView];
[win orderFront: nil];
Es funktioniert wie erwartet (zeigt auf eine Schaltfläche in der linken unteren Ecke des Bildschirms) etwa eine Sekunde lang, dann verschwindet . Warum verschwindet es? Speicherverwaltung oder etwas anderes, und wie behebe ich es?
Ja, es war GC. Ich erstelle gerade die UI programmatisch jetzt, weil ich nicht herausfinden kann, wie man es mit IB verbindet. Ich wollte nur das schwebende Fenster funktionieren lassen, bevor ich mit neuem Code herumhantieren würde, um ein IB-Dokument zum Laden zu bekommen, anstatt eines einfachen Knopf-Fensters. –
Cool - froh, dass Sie dieses Problem hinter sich haben. Ich verstehe die Logik hinter diesem Ansatz, aber ich würde Ihnen empfehlen, einen Schritt zurückzutreten und herauszufinden, wie IB zu verwenden ist. Es ist wirklich viel einfacher, als es selbst zu programmieren; Die gesamte Dokumentation, die Beispiele und der Workflow basieren auf der Verwendung von IB. In der Regel untersuchen Benutzer die Konstruktion von Nicht-IB-Oberflächen, nachdem sie IB als fortgeschrittenes Thema gemeistert haben. – bbum