使用 NSBezierPath addClip - 如何反转剪辑

2024-01-27

使用 NSBezierPath addClip 仅将绘图限制在用于剪切的路径内部。我想做相反的事情——只在外面画。

- (void)drawRect:(NSRect)dirtyRect {
    NSBezierPath *dontDrawInThis = ...;

    //We want an opposite mask of [dontDrawInThis setClip];

    //Drawing comes here
}

这是我的解决方案:

- (void)drawRect:(NSRect)dirtyRect {
    NSBezierPath *dontDrawInThis = ...;

    // The mask is the whole bounds rect, subtracted dontDrawInThis

    NSBezierPath *clip = [NSBezierPath bezierPathWithRect:self.bounds];
    [clip appendBezierPath:dontDrawInThis.bezierPathByReversingPath];
    [clip setClip];

    //Drawing comes here
}

对于 iOS,将 NSRect 替换为 CGRect。

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

使用 NSBezierPath addClip - 如何反转剪辑 的相关文章

  • 如何在可编写脚本的应用程序中将任意 AppleScript 记录传递给 Cocoa?

    我有一个 Cocoa 应用程序 其中包含 sdef XML 文件中描述的 AppleScript 字典 sdef 中定义的所有 AppleScript 类 命令等都是工作属性 除了我的 提交表单 命令 提交表单 命令是我尝试将任意信息哈希表
  • 沙盒尝试恢复消耗性 IAP

    我一直在尝试在 iOS 上测试一些消耗性 IAP 但遇到了一个奇怪的错误 弹出一条警报 其中包含以下文本 此应用内购买已被购买 它将恢复为 自由的 环境 沙盒 我已经检查过 并且确定我的 IAP 可以在 iTunesConnect 中使用
  • `pyqt5'错误`元数据生成失败`

    我正在尝试安装pyqt5使用带有 M1 芯片和 Python 3 9 12 的 mac 操作系统 我怀疑M1芯片可能是原因 我收到一个错误metadata generation failed 最小工作示例 directly in the t
  • 获取 Mojave 上的鼠标坐标

    我有一个非常基本的小命令行应用程序 可以在下次单击鼠标时获取鼠标坐标 import
  • ios 导航 堆栈操作

    我在尝试从 iOS 应用程序操作导航堆栈时遇到问题 或者至少是由于这种操纵而产生的行为 我的情况 我有 3 个 ViewController 控制器a显示多个级别 控制器 b 是游戏视图 控制器 c 是某种分数 显然 我将在控制器 a 中选
  • 从命令行调试 iOS 应用程序构建

    我正在通过命令行构建 iOS 应用程序 但在调试它时遇到问题 如果我使用 XCode 进行构建 它会让我在设备上 构建和调试 而不会出现任何问题 但现在 我不知道如何使用 gdb 在设备上启动它并逐步执行它 如果我尝试 添加自定义目标 可执
  • 自定义 UITableViewCell 选择样式?

    当我点击我的UITableViewCell 当我单击单元格时 背景部分 我的背景图像未覆盖的区域 会变成蓝色 另外 所有的UILabel单击时单元格上的 s 变为白色 这就是我想要的 然而 我不想要的是当我点击它时的蓝色背景 但如果我这样做
  • 使用 NSError 检查错误的正确结构

    我正在编写各种例程 并尽力保持其整洁和重构 我正在创建的方法开始看起来与此代码类似 IBAction buttonPress id sender Create Document Shopping List with this documen
  • 关于窗口层次结构的警告

    我的调试器中出现这样的警告 这是什么意思 Warning Attempt to present
  • 频繁绘制 CGPath 时的性能

    我正在开发一个将数据可视化为折线图的 iOS 应用程序 该图被绘制为CGPath在全屏自定义中UIView最多包含 320 个数据点 数据经常更新 图表需要相应地重新绘制 刷新率为 10 秒就很好了 到目前为止很容易 然而 我的方法似乎需要
  • 超类与类SpecificationPolicy不匹配

    我得到了一个superclass mismatch for class SpecificationPolicy尝试安装或升级某些brew 软件包时出错 例如 更新安装 supabase CLI 时 brew install supabase
  • 为沙盒 Cocoa 应用程序创建临时文件

    我的应用程序是沙箱化的 根据最新的应用程序商店指南 我想创建一些临时文件 我可以这样做吗 如果 是 我可以在哪里这样做 有没有预先指定的路径 还有访问该路径的命令 您应该使用NSTemporaryDirectory 函数 它将查找并返回适合
  • Git 2.2.x 无缘无故更新旧包文件的时间戳

    Git 2 2 0 和 2 2 1 似乎修改了旧的时间戳 git objects pack pack pack偶尔会无缘无故地文件 它只是改变时间戳 内容是相同的 调试这一点很困难 因为它似乎很少进行更改 我在 2 2 0 之前的任何 Gi
  • 如何使 for 循环以与 NSLog(@"%@", arrData) 相同的顺序迭代

    我执行了以下代码NSLog arrData 调试器中的输出预计如下所示 0 first name John 1 first name Florence 2 first name Melinda 3 first name Zack 然后我执行
  • 我如何获取用户的电子邮件? iPhone SDK

    我需要获取 Mail app 中使用的用户的电子邮件地址 如何使用 iPhone SDK 做到这一点 谢谢你 简短的回答 你不能 如果需要 您应该提示用户输入电子邮件地址
  • Objective-C中如何使继承的类能够看到父类的隐藏方法[重复]

    这个问题在这里已经有答案了 我有两个类 Class1 和 Class2 第二个类继承自第一个类 我需要重写 Class1 的 update 方法来实现我的目标 继承方法中 update方法的改变是在代码中间进行的 所以我不能使用 超级更新
  • 两者都实现了类。将使用两者之一

    我有一个项目 它具有使用 SocketRocket 的依赖项 通过 CocoaPods 安装 并从 HeapAnalytics 导入了静态库 显然 HeapAnalytics 库已经使用了 SocketRocket 编译时没有出现错误 但在
  • CBPeripheral 名称有时为 null

    我正在开发一个应用程序来与蓝牙 LE 外围设备进行通信 我目前正在测试的外围设备是其中之一these http www ti com tool cc2540dk mini 有趣的是 有时当我发现它时 我会得到它的正确名称 SimpleBLE
  • 如何在 ios 7 上更改重新排序控制图像

    我正在寻找一种更改重新排序控件图像和大小的方法 我使用此代码来更改重新排序图像 void tableView UITableView tableView willDisplayCell UITableViewCell cell forRow
  • iOS 10 的错误? NSDate 日本地区时间描述和 24 小时休息

    这似乎是 iOS 10 的一个错误 在 iOS 8 和 9 中都可以 NSDate date description 的小时描述是错误的 它附加了 24 小时描述和 12 小时描述 我没有使用 NSDateFormatter 只是默认设置

随机推荐

  • nginx - php-fpm 集群

    我有三台 php fpm 服务器和一台 nginx 服务器 我想使用 nginx 服务器对 php fpm 进行负载平衡 php fpm 服务器1 192 168 10 31 php fpm 服务器2 192 168 10 32 php f
  • Meteor - 无法在 Windows 8.1 上运行 tasklist.exe

    我使用 Windows Installer 安装了最新版本的 Meteor v 1 1 0 2 我使用的是 Windows 8 1 一切似乎都已正确安装 因为我能够使用创建新的流星项目meteor create projectName 当我
  • 编译器不会为多态常量值选择类型类

    我是 Haskell 的新手 所以请提前原谅我 为什么以下 haskell 代码无法编译 编译器似乎无法看到表达式的类型 maxBound a is a其中有一个Enum提供了实例 而不是一些type variable a0 这是ambig
  • 如何获取嵌入式 MATLAB 函数的内容

    我的 Simulink 模型中有一些嵌入式 MATLAB 函数 有没有办法获取此块的内容 您在编辑器中看到的文本 我的第一个猜测是使用 find system 获取嵌入的 MATLAB 函数 然后使用 get param 获取内容 但我没有
  • 无法将mongodb容器连接到docker中的节点容器

    我用 2 个镜像制作了 3 个 docker 容器这个仓库 https github com Samar 080301 MernCrudApp1 使用 MongoDB 公共镜像 我使用以下命令打开了所有三个容器sudo docker com
  • 是否可以在 Vim 中以不同的方式显示分页符号?

    One of the nice things about Vim is that one can insert a page feed symbol Ctrl L in Insert mode which delegates the pri
  • n 个字符或至少 m 个字符的正则表达式

    这应该是一个非常简单的正则表达式问题 但我在任何地方都找不到任何答案 如何制作一个正则表达式 它只匹配 2 个字符 或至少 4 个字符 这是我当前的方法 忽略正则表达式本身 这不是重点 A Za z0 9 2 A Za z0 9 4 然而
  • 当用户多次加载视图时,在 uitableview 上保存附件复选标记

    因此 我实现了一个带有 tableview 的 UIViewController 基本上它作为我的 uicollectionview 的一组 过滤器 加载 现在 当我单击表格视图中的复选标记时 它会相应地 过滤 我的单元格 但现在当我再次重
  • “dict”对象没有属性“id”

    这是我的代码 我正在尝试将 xml 字符串转换为 python 列表以在 html 模板中显示 self task xml
  • 使用 ggplot2 躲避哑铃图

    这个问题是基于这个先前的问题 https stackoverflow com q 58756264 4975218 考虑以下情节 Domain c A B C D E F G A B C D E F G A B C D E F G A B
  • 如何根据名称删除docker镜像?

    我想删除名称包含给定字符串的所有版本的 docker 映像 imagename 我已经尝试过以下方法 但似乎不起作用 docker images grep imagename xargs I docker rmi 请尝试以下操作 docke
  • Openfire Android PubSub 订阅请求批准

    我是 Openfire 的新手 因此我对 pubsub 功能有疑问 实际上 我已经创建了一个节点设置访问模型 as 授权 如下所示 PubSubManager mgr new PubSubManager xmpp getConnection
  • React Native 在 OnChange 中获取 TextInput 的名称

    我正在尝试为多个 TextInput 制作通用的 onChange 处理程序 然而 当我访问该事件时 我能得到的最好的结果是 event nativeEvent 它有 3 个键 事件计数 目标和文本 目标只是一个数字 我从文档中意识到 名称
  • MVC 5 种子用户和角色

    我一直在玩新的 MVC 5 我有一些使用代码优先迁移的模型 控制器和视图设置 我的问题是如何播种用户和角色 目前 我在 Configuration cs 的 Seed 方法中播种了一些参考数据 但在我看来 只有在某些内容首次到达 Accou
  • 如何在容器 div 内拥有具有固定页眉和页脚的可滚动正文?

    我有一个容器 div 有两个孩子 div 里面的元素 我想安置一个孩子 div 在顶部和其他孩子 div 在容器的底部 div 中间部分 内容 应在顶部和底部子项之间滚动 div 元素 我想要两个孩子 div 容器内的元素 div 具有固定
  • 单个文件中的多个类

    我无法将多个类放入一个文件中 例如 当我的文件如下所示 public class FirstClass public class SecondClass public class ThirdClass 我在编译过程中遇到错误 我不太确定是什
  • 加密 web.config 中的 appSettings

    我正在开发一个网络应用程序 它需要将用户名和密码存储在 web Config 中 它还引用一些由网络应用程序本身而不是客户端请求的 URL 我知道 Net 框架不允许提供 web config 文件 但我仍然认为以纯文本形式保留此类信息是不
  • 如何为Windows 7 32位系统安装tensorflow?我在我的系统中安装了python 3.5(32位)并安装了anaconda 3.4.4(32位)

    我只有32位系统 所以我安装了python 3 5 64位 发生错误 所以我成功安装了python 32位 然后我跟着那个文档 http tensorflow org install http tensorflow org install
  • 在 python 中将 IPOPT 与 Openmdao(或 pyoptsparse)结合使用

    大家好 我有一个小问题 我正在使用 openmdao 和 pyOptSparseDriver 它适用于某些求解器 例如 SLSQP PSQP 因此安装没有问题 现在我想用 IPOPT 尝试同样的操作 但是 pyoptsparse 没有给出代
  • 使用 NSBezierPath addClip - 如何反转剪辑

    使用 NSBezierPath addClip 仅将绘图限制在用于剪切的路径内部 我想做相反的事情 只在外面画 void drawRect NSRect dirtyRect NSBezierPath dontDrawInThis We wa