如何绘制透明的 NSScroller

2024-01-04

我正在对 NSScroller 进行子类化,以尝试使其看起来类似于 iOS 上的“滚动条”。我希望它只是一个覆盖层,代表在其下方绘制的当前位置。无论出于何种原因,如果我重写滚动条的drawRect,我都会得到用白色填充的边界。有什么方法可以防止这种情况,这样我就可以在我的 NSScroller 子类之上进行绘制?

Edit: Drawing with clear color seems to bring me close, but it is drawing "too clear" :P It's drawing right to the desktop, when I just want to be drawing down to the window. This picture might make it more clear alt text

有任何想法吗?


NSView 子类从drawRect 开始进行所有的绘制。如果您在子类中重写该方法,则您负责完成所有绘图(无论是通过您自己的方法还是调用超级方法。)例如,以下代码仅绘制滚动旋钮并绘制其余部分滚动条的框架透明。

- (void)drawRect:(NSRect)dirtyRect {

    // Do some custom drawing...
    [[NSColor clearColor] set];
    NSRectFill(dirtyRect);

    // Call NSScroller's drawKnob method (or your own if you overrode it)
    [self drawKnob];
  }

这更像是一个概念证明,而不是实际的代码建议(不确定执行这种最小量的绘制对 NSScroller 有何影响。) NSScroller 还具有其他特定的绘制方法,您可以从覆盖的 drawRect: 方法覆盖/调用(信息可从苹果文档获取:http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSScroller_Class/Reference/Reference.html http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSScroller_Class/Reference/Reference.html)

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

如何绘制透明的 NSScroller 的相关文章

随机推荐

  • 如何将 Either 转换为 MonadThrow

    我有一个通过处理错误的函数Either funErrViaEither a gt Either SomeException b 我想在另一个应该更灵活并返回的函数中使用这个函数MonadThrow m funErrViaThrow Mona
  • JavaFX 冻结问题

    我正在摆弄 JavaFX API 由于某种原因 这个应用程序似乎在 看似 随机的时间后冻结了 它是一个制作红绿渐变图案的应用程序 并且有一个很酷的动画与之配合 当应用程序运行时 按 Enter 键 动画就会开始 一段时间后 就像我之前所说的
  • 如何在 gitignore 中使用条件

    我管理着几个pdf and graffle使用 git 生成文件 我想添加pdf仅当以下情况时才将文件存储到存储库graffle具有相同文件名的文件不存在 例如 G 只添加foo pdf and bar graffle进入目录中的存储库 l
  • 如何更改 wp7 中列表框项目的可见性属性?

    例如 有一个列表框
  • 让lua脚本等待/暂停/睡眠/阻塞几秒钟的最简单方法?

    我不知道如何让 lua 执行任何常见的计时技巧 例如 sleep 停止线程上的所有操作 暂停 等待 不要继续下一个 命令 但允许其他代码 申请继续 阻止 不要继续执行下一个命令 直到 当前返回 我读过 while os clock
  • 如何在 Swift 中使用 NSURLSessionDataTask [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 有人能帮我吗 我找不到完成语法的好例子 var url NSURL NSURL URLWithString https itunes app
  • 反射:如何使用参数调用方法

    我试图通过带有参数的反射来调用方法 我得到 对象与目标类型不匹配 如果我调用一个不带参数的方法 它工作得很好 如果我调用该方法 则基于以下代码Test TestNoParameters 效果很好 但是如果我打电话Test Run 我得到一个
  • 合并 2 个分支时 Xcode 6.0.1 崩溃

    每次我尝试将一个分支合并到另一个分支时 Xcode 6 0 1 都会崩溃 到目前为止我有 尝试从另一台计算机合并相同的分支 显然之前推送和拉动它们 但它仍然崩溃 从 错误分支 创建一个新分支 在其中添加一个空格 并将其成功合并回 错误分支
  • 如何从 Objective-C 中的其他类访问 IBOutlet?

    我如何访问IBOutlets是在另一个类中创建的吗 例如 如果我有一个IBOutlet in Class A我怎样才能访问Class B 如果我无法访问IBOutlets来自其他课程的解决方法是什么 你需要让你的IBOutlet a pro
  • 获取存储在 React Native 文档目录中的文件名数组

    CASE 我已将音频文件下载到名为 tracks 的文件夹下的文档目录 如下所示 RNFetchBlob fs dirs DocumentDir tracks 毫无疑问 我可以按每个音频的名称来阅读它们 RNFetchBlob fs dir
  • 更新 Android Studio 3.1 后,发布签名的 APK 时出现错误

    将我现有的项目迁移到 Android Studio 3 1 后 它无法编译 以下是日志详细信息 org gradle api tasks TaskExecutionException 任务 app mergeReleaseResources
  • Facebook 喜欢视频自动播放和暂停

    在我的网站上有一个包含许多视频的页面 当 iframe 视频在视口中完全可见时 视频应自动播放 当视频移动到视口上方时 视频应该暂停 就像我们在 Facebook 中看到的那样 Note 我在用着iframe 但不是html5视频元素 虽然
  • 在 vanilla JS 中触发 Enter 按键

    我试图在我的输入上触发输入按键事件 而无需实际按下输入键 更多的是加载 我发现初始化键盘事件 https developer mozilla org en US docs Web API KeyboardEvent initKeyboard
  • Matplotlib:如何在 x 轴上绘制带有分类数据的线?

    我正在尝试绘制几行 不是条形图 如这个案例 https stackoverflow com questions 7559242 matplotlib strings as labels on x axis 我的 y 值是float 而 x
  • NSNotification:对象属性必须是 self 吗?

    到目前为止 我一直在使用 NSNotificationCenter 的方法postNotification aString object anyObjectOfInterestForTheReceiver 但最近我在文档中读到object字
  • 如何在Asp.net Core中获取用户浏览器名称( user-agent )?

    您能让我知道如何获取客户端在 MVC 6 ASP NET 5 中使用的浏览器名称吗 我认为这是一件容易的事 得到了答案Request Headers User Agent ToString
  • 如何使用 SQL Server 解析嵌套 JSON 数组

    我目前能够使用 SQL Server 解析 JSON 文件的大部分内容OPENJSON WITH 句法 但是 这个特定文件包含我不知道如何处理的嵌套数组 我读到的许多示例都将 JSON 引用为变量 在这种情况下 我调用一个文件 select
  • 引用当前的 RoleProvider 实例?

    当在 ASP NET 页面 模块或处理程序中使用HttpContext http msdn microsoft com en us library system web httpcontext aspx目前 我如何获得当前的参考角色提供者
  • 如何使用 thunk 和 useDispatch (react-redux 挂钩)从操作返回承诺?

    我刚刚开始探索react redux钩子 我很好奇如果我使用thunk和useDispatch 本质上我想实现以下目标 const dispatch useDispatch dispatch myAction args then resul
  • 如何绘制透明的 NSScroller

    我正在对 NSScroller 进行子类化 以尝试使其看起来类似于 iOS 上的 滚动条 我希望它只是一个覆盖层 代表在其下方绘制的当前位置 无论出于何种原因 如果我重写滚动条的drawRect 我都会得到用白色填充的边界 有什么方法可以防