我正在创建一个没有标题栏的自定义NSWindow
,并使用NSBorderlessWindowMask
使其完全无边框。然而,我遇到的问题是窗户有锋利的边缘。除此之外,没有调整大小控制。
我如何为无边框窗口提供圆角?
不是this question的副本,因为该问题更多 关于删除标题栏和它 目前没有答案。
答案 0 :(得分:7)
您可以使窗口完全透明,并自己处理绘制所有内容。我的示例是用于OpenGL视图,但它也适用于Quartz视图或Cocoa视图。
将以下内容添加到NSWindow子类的初始值设定项中,使用NSBorderlessWindowMask常量创建新窗口。
[self setOpaque:NO];
[self setBackgroundColor:[NSColor clearColor]];
您可能需要自己绘制调整大小控件。我从中获取的样本是一个全屏窗口,因此不需要调整大小。
祝你好运。
答案 1 :(得分:0)
获取带有圆角的窗口的最简单方法是将import tempfile
# Create an empty file
with tempfile.NamedTemporaryFile(delete=False) as default_file:
pass
# or write something to it if you want, such as:
# default_file.write("Something\n")
for subdir, dirs, files in os.walk(rootdir):
list_found = False
for file in files:
if file.endswith(".json"):
json_files.append(os.path.join(subdir, file))
if file.endswith(".list"):
table_files.append(os.path.join(subdir, file))
list_found = True
if not list_found:
table_files.append(default_file.name)
# After done, delete the file
放入窗口中,因为这些框具有可自定义的圆角和可自定义的边框。如果然后将窗口设置为非不透明,而将背景色设置为透明(“透明色”),则您有一个带有圆角的NSBox
,它会绘制普通的窗口阴影(即使在较旧的系统中,该窗口也会否则没有阴影)。大多数可以在Interface Builder中完成。 See here for details。