2011-04-20 23 views
1

我已經劃分NSWindow,所以我可以做一些調整並且有一個自定義窗口。其中之一是使底角四捨五入,但尚未成功。NSWindow的底角四捨五入

我試過this但我的窗口沒有標準狀態欄,它沒有工作。 我希望這是可能的;)

在此先感謝

+1

你爲什麼要讓你的窗戶不標準?這樣做的主要作用是惹惱你的應用程序的用戶,並讓他們討厭你。用戶界面指南是有原因的。使用它們。 – JeremyP 2011-04-20 07:22:26

+0

沒錯,但即使蘋果公司也做非標準的窗口:iTunes和AppStore的工具欄,Safari的WebInspector和Xcode中的一些窗口以及成千上萬個帶有自定義窗口的遊戲等等都是非標準的例子,並不是所有這些都會讓用戶煩惱。我認爲這取決於他們設計得有多好) – nacho4d 2011-04-21 15:14:19

+0

是的,蘋果公司在破壞自己的用戶界面指導方面是個壞人。這並不意味着每個人都應該這樣做。 – JeremyP 2011-04-23 12:58:38

回答

5

由於我的窗口具有的風格:NSBorderlessWindowMask我已經通過繼承窗口和壓倒一切的drawRect的containerView解決了這個:

- (void) drawRect:(NSRect)dirtyRect{ 
    [[NSColor windowBackgroundColor] set]; 

    [NSGraphicsContext saveGraphicsState]; 
    NSBezierPath *path; 
    path = [NSBezierPath bezierPathWithRoundedRect:[self bounds] xRadius:5 yRadius:5]; 

    ... // do more fancy stuff here ;) 

    [NSGraphicsContext restoreGraphicsState]; 
} 
4

使用此窗口的委託:

- (void)awakeFromNib 
{ 
    [window setContentBorderThickness:32.0 forEdge:NSMinYEdge]; 
} 

或者你可以在大小設置一個窗口在Xcode 4這種行爲檢查員在ContentBorder。這將使窗口是這樣的:

NSWindow with set content border

+0

對不起,我忘了提及我的窗口是用'NSBorderlessWindowMask'風格初始化的;( – nacho4d 2011-04-21 15:01:17