objective-c – Cocoa Mac Sheet圆角(与Xcode 4一样)

有谁知道如何制作带有圆角的可可纸,如下图所示?

Xcode 4圆形表

我看了一遍,但似乎无法找到任何东西.我不确定我是否在寻找错误的地方,或者这是不是一种常见的做法.有任何想法吗?

解决方法

编辑:事实证明,如果你的目标是OS X Lion或更高版本,这种行为会更容易 – 只需调用[sheet setopaque:NO]即可启用圆角.

这种行为很容易重现.将工作表初始化为透明无边框窗口:

self.sheet = [[NSWindow alloc] initWithContentRect:NSMakeRect(0,300,300) styleMask:NSBorderlessWindowMask backing:NSbackingStoreBuffered | NSTitledWindowMask defer:YES];
[self.sheet setopaque:NO];
[self.sheet setBackgroundColor:[NSColor clearColor]];

添加自定义视图作为子视图:

[[self.sheet contentView] addSubview:[[IFWindowView alloc] initWithFrame:[[self.sheet contentView] frame]]];

自定义视图应如下所示:

#define RADIUS 5.0
NSBezierPath *bezierPath = [NSBezierPath bezierPathWithRoundedRect:NSMakeRect(self.bounds.origin.x,self.bounds.origin.y + RADIUS,self.bounds.size.width,self.bounds.size.height) xRadius:RADIUS yRadius:RADIUS];
[[NSColor windowBackgroundColor] set]; // In production,use the appropriate color with alpha for transparency.
[bezierPath fill];

以下是一些示例代码,用于演示此操作:http://d.pr/l9DB

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...