macOS NSView改变frame后会出现黑色残留,应付的办法是不在drawRect上修改重新initWithFrame一下就行

黑色部分就是残留。是因为绘制后保留了轨迹。
解决办法是不在drawRect中做处理重新写NSView,新增方法 initWithFrame
- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
//cocoa方法的改变背景颜色
[[NSColor redColor] setFill];
NSRectFill(dirtyRect);
// Drawing code here.
// CGFloat lineWidth = 2.0;
// // Drawing code here.
// NSBezierPath* bgPath = [NSBezierPath bezierPathWithRoundedRect:NSInsetRect(dirtyRect, 10.0f, 10.0f) xRadius:3.0 yRadius:3.0];
// [bgPath setLineWidth:lineWidth];
// [bgPath setClip];
// [[NSColor purpleColor] setFill];
// [bgPath fill];
}
- (instancetype)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self setWantsLayer:YES];
self.layer.backgroundColor = CGColorCreateGenericRGB(1.0, 0, 0, 1.0);
// NSShadow *shadow = [[NSShadow alloc] init];
// [shadow setShadowColor: [NSColor redColor]];
// [shadow setShadowBlurRadius:4.0];
// [self setShadow:shadow];
// [self addSubview:self.klineVC.view];
// [self.klineVC.view mas_makeConstraints:^(MASConstraintMaker *make) {
// (void)make.edges;
// }];
}
return self;
}
效果如图所示

macOS NSView改变frame后会出现黑色残留,应付的办法是不在drawRect上修改重新initWithFrame一下就行的更多相关文章
- ViewPager的addOnPageChangeListener和setOnPageChangeListener的区别,ViewPager改变数据后IndexOutOfBoundsException
我的ViewPager数据改变后,在切换界面刷新数据时:OnPageChangeListener中的数据IndexOutOfBoundsException,我们来看源码探一下究竟: 代码时这样写的: ...
- Ubuntu杂记——双系统重装Win7后找不到Ubuntu的解决办法
之前装过Ubuntu和Win7的双系统,后来重装了Win7,发现Ubuntu不见了,那会没怎么用,也没去解决问题.现在再看Android内核剖析,大部分都是在Ubuntu环境下进行的,所以百度了一些方 ...
- xampp 用phpmyadmin在页面上修改密码后,无法登陆,密码没问题
xampp 用phpmyadmin在页面上修改密码后,无法登陆,密码没问题一直提示密码错误, 什么原因? ------解决方案--------------------改了密码之后,phpmyadmin ...
- 修改计算机名或IP后Oracle10g无法启动服务的解决办法
修改计算机名或IP后Oracle10g无法启动服务的解决办法 遇到的问题,问题产生原因不详.症状为,windows服务中有一项oracle服务启动不了,报出如下错误. Windows 不能在 本地计算 ...
- 分享:Windows2008重启后提示系统恢复选项的解决办法
如题:WINdows2008服务器. 重启后提示系统恢复选项的解决办法 使用windows 2008后,不能启动的问题,重启后出现 修复系统选项 采用下面帖子中的部分命令搞定之. 我自己是直接使用:选 ...
- Android Studio安装后提示No JVM installation found解决办法
Android Studio安装后提示No JVM installation found解决办法 问题描述:Android Studio安装完毕,打开时出现提示"No JVM install ...
- IOS7.1-7.1.1越狱后无法读取越狱文件的解决办法
IOS7.1-7.1.1越狱后无法读取越狱文件的解决办法 申明: 下面安装PP源的方法已经失效,请不用按照下面的方法操作. 更新最新的方法,在cydia中搜索源 apple fil ...
- NGUI发布后UI层看不见的解决办法
NGUI发布后UI层看不见的解决办法 提示信息:You can'tplace widgets on a layer different than the UIPanel that manages th ...
- STM32F407外部晶体改为25M后检测不到芯片的解决办法
问题描述 分享一个之前遇到的STM32F4晶体频率问题,导致单片机死机的解决办法.使用一款新的F4开发板,直接使用的正点原子STM32F407工程模板代码,管脚配置正确,下载到外部晶体为25MHz的开 ...
- # vmware异常关机后,虚拟系统无法启动的解决办法
vmware异常关机后,虚拟系统无法启动的解决办法 先使用everything搜索所有后缀为.lck的文件,这些文件全部删除,如果不确定是否可以删除,先把这些文件转移到桌面,等能启动虚拟系统之后再删除 ...
随机推荐
- js获取时间戳的方法
js获取时间戳的方法 转载脚本之家: https://www.jb51.net/article/77066.htm 转载博客园八英里: https://www.cnblogs.com/deepalle ...
- 依那西普治疗多关节型和系统型JRA的长期疗效[EULAR2007_SAT0397]
依那西普治疗多关节型和系统型JRA的长期疗效 Giannini EH, Ilowite NT. EULAR2007. Abstract No:SAT0397. 标签: EULAR2007,EULAR文 ...
- 把 URL 中文和一堆百分号转换成字符串
https://www.cnblogs.com/Enziandom/tag/Web%20%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91 JS 有解析这样的 URL 的函数,主 ...
- 彰显个性│github 和 gitlab 之自定义首页样式
目录 个性首页 制作步骤 修改内容 个性首页 相信很多小伙伴在逛 github 和 gitlab 的时候 会发现很多开发者的首页异常的炫酷,如 https://github.com/autofelix ...
- AOP 编程
1.静态代理 定义一个接口,用以规定执行方法 public interface IOrderProcessor { void Submit(); } 实现执行方法 public class Order ...
- unity puerTS热更
https://blog.csdn.net/yupu56/article/details/120766597
- lama-cleaner全部命令行参数
usage: main.py [-h] [--host HOST] [--port PORT] [--config-installer] [--load-installer-config] [--in ...
- 免费ASP空间
free免费asp空间的申请方法: free免费asp空间的ftp使用方法: sise.host3v.vip/1
- 前端js下载excel
// 1.文件流下载文件: export function axiosPostExport(url, data, fileName, suffix = '.xlsx') { url = get ...
- Ubuntu离线安装 MySQL 5.7
来源:https://www.ngui.cc/article/show-581968.html?action=onClick 一.所需环境 操作系统:Ubuntu 20.04数据库:MySQL 5.7 ...