快速以编程方式清除 NSView

2024-05-02

我有一个NSView连接到自定义类。
该视图上有一些图画:

class LineDrawer: NSView {
    var linear = NSBezierPath()
    var storage = NSUserDefaults.standardUserDefaults()

    override func drawRect(dirtyRect: NSRect) {
        var color = NSColor()

        if let newLoadedData = storage.objectForKey("color") as? NSData {
            if let currentColor = NSUnarchiver.unarchiveObjectWithData(newLoadedData) as? NSColor {
                color = currentColor
            }
        }

        color.set()
        linear.lineWidth = CGFloat(storage.integerForKey("width"))
        linear.stroke()
    }

    override func mouseDown(theEvent: NSEvent) {
        super.mouseDown(theEvent)
        let location = theEvent.locationInWindow
        var lastPt = theEvent.locationInWindow
        lastPt.y -= frame.origin.y
        linear.moveToPoint(lastPt)
    }

    override func mouseDragged(theEvent: NSEvent) {
        super.mouseDragged(theEvent)
        var newPt = theEvent.locationInWindow
        newPt.y -= frame.origin.y
        linear.lineToPoint(newPt)
        needsDisplay = true
    }
}

现在我需要编写一个函数来完全清除该视图。


不太清楚完全清晰的视图是什么意思,但你不能用纯色填充它吗?

[[NSColor windowBackgroundColor] setFill];
NSRectFill(self.bounds);

(还没有跟上 Swift 的热度)

update我提高了我的迅捷能力,看哪!

NSColor.windowBackgroundColor().setFill()
NSRectFill(self.bounds)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速以编程方式清除 NSView 的相关文章

随机推荐

  • 为什么我在 Python 中收到“连接被拒绝”错误? (插座)

    我是套接字新手 请原谅我完全缺乏理解 我有一个服务器脚本 server py usr bin python import socket import the socket module s socket socket Create a so
  • 在 MVC 中使用 DI 时的大量控制器构造函数参数列表

    我正在开发 ASP NET MVC3 解决方案 该解决方案使用 autofac 的依赖注入 我们的控制器由 autofac 正确创建 所有必需的对象都正确传入 这些对象通常包括服务 存储库和将域对象转换为 MVC 视图 模型的映射器 所以控
  • Backbone.js 模型默认值和解析

    我有这个Backbone Model代表 Google Books API 卷 var Book Backbone Model extend defaults volumeInfo title n a authors n a publish
  • 将管道输入转储到文件的简单方法是什么? (Linux)

    我正在寻找一个小 shell 脚本 它可以将任何内容通过管道传输到其中 并将其转储到文件中 用于电子邮件调试目的 有任何想法吗 unix 命令 tee 可以做到这一点 man tee
  • 从 Qt 中的半透明小部件中擦除绘制区域

    我面临着必须擦除 Qt 小部件上先前绘制的区域的问题 基本思想是 用户通过单击并拖动鼠标来选择屏幕的一个区域 并在所选区域上绘制一个矩形 标题 class ClearBack public QWidget Q OBJECT public e
  • 我在 firebase.auth.ApplicationVerifier 中遇到问题

    错误发生在signInWithPhoneNumber 的第二个参数中 我无法解决这个问题 我使用了三种方法来发送 otp 验证 otp 和最后用于验证码 methods sendOTP e e preventDefault if this
  • 在 SQL Server 中实现一对零或一关系

    我正在使用 Entity Framework 4 1 数据库第一种方法 我使用过旧数据库 在我的 edmx 文件中 它根据旧数据库中的表创建实体类 有一个一对零或一某些实体之间的关联 尽管我探索了数据库表以及它们之间的关系 但我不知道如何一
  • CTRL+C 和 CTRL+Break 不同吗?

    我一直认为它们绝对是一样的 但我刚刚在以下位置找到了一些值 CTRL C EVENT 和 CTRL BREAK EVENT设置控制台Ctrl处理程序 http msdn microsoft com en us library ms68601
  • 在 php 中比较两个日期的正确方法是什么? [复制]

    这个问题在这里已经有答案了 我需要将数据库中的日期与当天进行比较 这是我的代码 雄辩地说 posts Post where date date Y m d gt get 我只想检索今天的帖子 知道 日期 字段的类型为日期 我该如何使其工作
  • IIFE 和 call 的区别

    之间有区别吗 function call this and function or var MODULE function this hello world call MODULE and var MODULE function m m h
  • Electron 应用程序可以与 java 代码集成吗?

    由于node js仍然缺乏Java中存在的重要功能 因此我想使用Java而不是node js 并使用Web语言 html js css 创建客户端 Electron 是跨平台的 java 也是跨平台的 因此似乎有一个能够两全其美的解决方案
  • HSQLDB - 这是主数据库文件

    我在嵌入模式下使用 HSQLDB jdbc hsqldb file abc TESTDB 创建数据库后 文件夹abc有以下文件 TESTDB lck TESTDB script TESTDB log TESTDB properties 我的
  • 在 AWS Elastic Beanstalk 中部署 Flask 应用程序

    当我部署 Flask 应用程序时 它显示成功 但是当我检索日志时 我看到错误 找不到 Flask 我的需求文件中有烧瓶 任何帮助 Sat Jan 11 06 51 50 503908 2020 error pid 3393 remote 1
  • 如何在Matlab脚本中将泰勒级数系数存储到数组中

    这个问题是在 m 脚本的上下文中 我知道如何获取函数的泰勒级数 但我没有看到任何命令允许将级数的系数存储到数组中 sym2poly似乎不起作用 如何将系数存储到数组中 例如这个函数 syms x f 1 x 2 4 x 9 我们怎样才能得到
  • 使用 PixelWriter 在 JavaFX Canvas 上进行透明绘图

    有谁知道为什么使用drawImage 在Canvas上进行透明度绘制工作得很好 但在PixelWriter上却根本不起作用 我最初认为这可能与画布 上下文上的混合或其他模式 设置有关 但还没有任何运气 我需要每个像素的可变透明度 而不是整个
  • android setOnLongClickListner 不适用于 onTouch 事件

    我有一个可拖动和缩放的图像视图 但现在我还需要将 setOnLongClickListner 放在我的图像视图上 我已经这样做了 但它不起作用 但是当我禁用 ontouch 事件时它开始工作 谁能告诉我如何解决这个问题 这是我的代码 ima
  • 使所有打开的文档选项卡可见

    我想查看我在 Visual Studio 中打开的所有文件或文档 我不希望它们自动隐藏或溢出时隐藏 我怎样才能实现它 执行此操作的内置选项之一 使用固定选项卡 http dailydotnettips com 2016 01 21 pers
  • 如何将主菜单添加到 xib

    我从 xib 文件中删除了主菜单 我怎样才能重新创建它而不需要处理它 另一个新创建的xib 我似乎找不到如何告诉 IB 我从对象库添加的菜单实际上是主应用程序菜单 你不能 您过去可以简单地连接mainMenu菜单的出口 但从 Xcode 4
  • 如何将当前日期分配给 odoo v8 中的日期字段?

    我想将当前日期分配给以下代码中的日期字段 start date calendar obj create cr uid name rec res act ion user id rec res asgnd to id start date l
  • 快速以编程方式清除 NSView

    我有一个NSView连接到自定义类 该视图上有一些图画 class LineDrawer NSView var linear NSBezierPath var storage NSUserDefaults standardUserDefau