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的文件,这些文件全部删除,如果不确定是否可以删除,先把这些文件转移到桌面,等能启动虚拟系统之后再删除 ...
随机推荐
- ubuntu 20.04 远程桌面(win10 控制 Ubuntu 20.04)
转载csdn: https://blog.csdn.net/lucky7213/article/details/107008246/
- 05for循环
for循环 循环的作用与分类 作用:让代码更加高效的重复运行 分类:for循环和while循环 for循环结构 for 临时变量 in 可迭代对象: 重复执行的代码1 重复执行的代码2 ... 可迭代 ...
- go 语言 for循环的一个坑
1.案例1 package main import "fmt" type Card struct { id int } func main() { list := make([]* ...
- Ubuntu 安装 Nginx
Ubuntu版本:20.04.1 LTS Nginx版本:1.22.0 下载地址: https://nginx.org/en/download.html 上传目录:/usr/local/src 安装目 ...
- centos 修改ip
TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6IN ...
- Vulnhub:ReconForce-01.1靶机
kali:192.168.111.111 靶机:192.168.111.200 信息收集 端口扫描 nmap -A -v -sV -T5 -p- --script=http-enum 192.168. ...
- lg7863
傻题. 对于相邻的每个点,从高度高的点向高度低的点连边. 依靠差分的思想,设边权是高度差. 考虑第一问,答案显然是这个图dag路径覆盖,可以运行最大流. 考虑第二问.如果每连一条链,那么答案会加上这条 ...
- JDBC:实现Java与数据库的连接
先了解重要的编程思想:ORM(object relational mapping) 即将数据库与JAVA的类一一映射(对应) 一个数据表对应一个Java类 表中的一条记录对应Java类的一个对象 表中 ...
- css3的的新特性
1.transform 2.calc 3.transition
- 【SQL Server】中的日期函数和日期数据类型
SQL Server Date 函数 SQL Server的重要日期函数包括: 函数 描述 参数含义 GETDATE() 返回当前的日期和时间 DATEPART(datepart,date) 返 ...