gpt4 book ai didi

cocoa - NSView 子类的圆角不起作用

转载 作者:行者123 更新时间:2023-12-03 18:00:44 29 4
gpt4 key购买 nike

我有一个自定义的 NSView 子类,我想要它有圆角。我在 .m 文件中使用以下代码:

#import "ItemImageSelectionView.h"

@implementation ItemImageSelectionView

- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.wantsLayer = YES;
self.layer.frame = self.frame;
}

return self;
}

- (void)drawRect:(NSRect)dirtyRect
{

[[NSColor colorWithCalibratedRed:0.0 green:0.5 blue:1 alpha:1] set];
NSRectFill(dirtyRect);

[self.layer setCornerRadius:5.0];

}

@end

我使用此代码来初始化 View ,非常默认:

NSView *imageSelectionView = [[ItemImageSelectionView alloc] initWithFrame:CGRectMake(imageView.frame.origin.x - 2, imageView.frame.origin.y - 2, imageView.frame.size.width + 4, imageView.frame.size.height + 4)];
[self addSubview:imageSelectionView positioned:NSWindowBelow relativeTo:imageView];

但它没有设置任何圆角!我做错了什么?

最佳答案

drawrect方法中不需要设置圆角;在 init 中设置它。另外,您可能应该在重写的方法中调用 super 方法 [super drawRect:dirtyRect] 。不过,我不确定您的填充自定义将如何与图层交互。您可能需要设置 [self.layer setMasksToBounds:YES];

关于cocoa - NSView 子类的圆角不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6955613/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com