2012-04-03 4 views
2

Ich möchte ein Fenster als ein Blatt angezeigt werden, die sich perfekt mit dem folgenden Code ausgeführt wird:Positionieren eines Blattes nach der Verwendung von beginSheet: modalForWindow :?

[NSApp beginSheet:mySheet 
    modalForWindow:myWindow 
    modalDelegate:nil 
    didEndSelector:NULL 
     contextInfo:NULL]; 

Allerdings gibt es ein kleines Problem:

  • ich eine Implementierung von Chromium Tabs bin mit , und - aus irgendeinem Grund wahrscheinlich mit der inneren Logik von Chromium Tabs verbunden - scheint das Blatt etwas niedriger zu sein, als wo ich es haben möchte ... (Vielleicht wird das als Fenster "Grenze" betrachtet, aber trotzdem ...)

enter image description here

Was ist los? Wie könnte ich das beheben?

Antwort

8

fand es einfach:

Im Delegierten Fenster, wir window:willPositionSheet:usingRect: wie dieses Ich würde auch einen Fehlerbericht an den Projekt einreichen Besitzer vorschlagen

- (NSRect)window:(NSWindow *)window willPositionSheet:(NSWindow *)sheet 
     usingRect:(NSRect)rect 
{ 
    rect.origin.y += 11; // or as much as we need 
    return rect; 
} 
+1

implementieren. Andernfalls könnten Sie magische Zahlen von einer Version von OS X (oder Chromium Tabs) zur nächsten jagen, wenn sich Größen und Stile ändern. –

+1

@JoshuaNozzi Guter Punkt, obwohl in der Tat die Version von Chromium Tabs, die ich momentan verwende, so stark (von mir) optimiert ist, dass, wenn es jemanden gibt, den ich benachrichtigen sollte, das ich bin. :-) –

+0

Ah. Das macht es schwerer einen Fall zu machen. :-) –

Verwandte Themen