2012-04-03 10 views
2

我想顯示的窗口作爲片材,這是完全用下面的代碼運行:使用beginSheet之後定位工作表:modalForWindow:?

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

然而,存在一個小問題:

  • 我使用的Chromium Tabs的實現,並且 - 由於某種原因可能與Chromium Tabs的內部邏輯有關 - 表單看起來似乎比我想要的要低一些......(也許這就是被認爲是「邊框」的窗口,但無論如何...)

enter image description here

怎麼了?我怎麼能解決這個問題?

回答

8

只是覺得:

在窗口的委託,我們實現window:willPositionSheet:usingRect:這樣

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

我還建議提交給項目業主的bug報告。否則,當尺寸和樣式發生變化時,您最終可能會從一個版本的OS X(或Chromium標籤)追溯到下一個版本。 – 2012-04-03 13:04:06

+1

@JoshuaNozzi好點,雖然實際上我目前使用的Chromium Tabs的版本是如此嚴重的調整(由我),如果有任何人我應該通知,那將是我。 :-) – 2012-04-03 13:36:02

+0

啊。這使得案件更難。 :-) – 2012-04-03 16:14:29