子类化 NSDrawer 的 contentView 以实现完全自定义的抽屉

2023-12-02

我想通过子类化 NSView 并在其中完成所有视图绘制来完全实现我自己的自定义抽屉。我创建了一个自定义 NSView 类,除了实现 initWithFrame: 和 drawRect: 之外几乎不做任何事情,我已经记录了 NSView 的框架/边界(报告正确)。我还实例化了这个视图,并使用 setContentView: 将其添加到我的应用程序中的 NSDrawer 对象,以便它使用我的自定义 NSView。

但是,这仍然会绘制附加到我的应用程序 NSWindow 边缘的默认抽屉布局。如何覆盖这个默认样式,以便我可以在自定义的子类 NSView 中绘制自己的抽屉(!),而无需操作系统绘制任何默认样式? (这样我就可以自己控制抽屉的设计和尺寸,基本上模拟一个不会严格充当传统抽屉的选项卡栏。)


我通过子类化 NSWindow 而不是 NSDrawer 制作了一个自定义抽屉。这是一项繁重的工作。有一个私有对象 NSThemeFrame,位于 NSWindow 及其 contentView 之间。为了避免使用私有 API,你必须创建一个透明窗口并让其 contentView 像 NSThemeFrame 一样工作。马特·加拉格尔 (Matt Gallagher) 展示了如何:http://cocoawithlove.com/2008/12/drawing-custom-window-on-mac-os-x.html

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

子类化 NSDrawer 的 contentView 以实现完全自定义的抽屉 的相关文章

  • git pull origin master 返回致命错误:无效的 refspec

    问题是这样的 每当我这样做时 git pull https github com username reponame github io git 接下来是网址 我没有遇到任何问题 但是当我这样做时 git pull origin maste
  • NSTextview:如何获取插入点的字形矩形?自定义文本视图?

    我似乎找不到任何有关如何获取插入点的矩形的文档 我试图在文本插入点 插入点正下方显示一个视图 如自动完成 我正在考虑制作一个自定义文本视图 但如果我可以避免它 那对我的情况来说将是理想的 谢谢 NSRect rectForActiveRan
  • 使用 Bash 按进程名称检查 Mac 进程是否正在运行

    如何使用 Bash 脚本中的进程名称检查 Mac OS X 上的进程是否正在运行 我正在尝试编写一个 Bash 脚本 如果进程已停止 它将重新启动进程 但如果进程仍在运行 则不执行任何操作 解析这个 ps aux grep v grep g
  • 管理 iOS 中的布局

    我是新来的iOS开发方面 我对 JAVA Swing 和 Windows 应用程序有扎实的背景 我想学习如何进行布局iOS 我猜iOS没有 布局管理器 就像 Java Swing 中的那样 发展的唯一出路UI是否指定每个控制器的尺寸和位置
  • 当日期改变时 NSNotification?

    WebKit 的 WebHistory API 按日期分隔其项目 因此 当日期发生变化时 我需要重新分配任何 昨天 和 或 早些时候 今天 或 明天 标签 有 NSNotification 吗 或者我必须依赖 NSTimer 还是 perf
  • 在 wkwebview 中启用摄像头和麦克风访问

    我有一个针对移动设备优化的网络应用程序 它利用getUserMedia访问网络摄像头和麦克风资源 我正在将这个应用程序包装在WKWebView因为我想提供原生应用程序体验 我知道 iOS 不允许通过浏览器访问相机 但是有什么方法可以使用本机
  • UIPopViewController 不工作

    我有一个 xib 文件 其中有 h 和 m 链接 在 xib 中有一个带有 textView 的 UIView 我想要对该视图执行的操作是 当您单击按钮时将其作为 UIPopViewController 打开 这是我的代码 IBAction
  • iOS HTTP 请求在后台运行

    当应用程序处于后台时 可以向 PHP 服务器发出 HTTP 异步请求吗 该应用程序是基于位置的应用程序 应收集当前位置并每 5 或其他值 分钟将坐标发送到服务器 即使应用程序处于后台 我也可以将 http 帖子发送到服务器吗 我读到了很多关
  • 编程界面方向更改不适用于 iOS

    因此 我有一个项目 当用户按下按钮时 我需要强制改变方向 我创建了一个github 上的示例应用程序 https github com vradenburg ForcedOrientationChange来演示这个问题 interface
  • iOS 5 Twitter 框架和completionHandler 块 - “在此块中强烈捕获‘自我’可能会导致保留周期”

    我对编程和 Objective C 非常陌生 我正在尝试找出我的代码出了什么问题 我已经阅读了一些有关块的内容 但我不知道到目前为止我所阅读的内容与我的代码有何相关 我的代码使用 iOS 5 Twitter 框架 我使用了 Apple 提供
  • 如何在 Macbook M1 Silicon 上正确安装 CocoaPods

    我正在尝试在配备 M1 芯片的新 MacBook Pro 上安装 Cocoa Pods 从12月份开始就找到了一些解决方案 由于是二月份 这些解决方案可能有点过时了 我在 CocoaPods 网站上找不到任何说明 有人能帮我解决这件事吗 我
  • NSString 到 TimeInterval

    我有一个 NSString 的格式00 00 00 00最初获得自 dateFormatter setDateFormat HH mm ss SS 我如何获取该字符串并将其转换为 TimeInterval 如果您 100 绝对肯定这种格式永
  • 从选定的文件夹中获取大小 >100MB 的文件列表及其路径目标 c

    我想获取我的 mac 系统的所有文件及其路径和大小的列表 由此 我只想过滤那些文件大小超过 100 MB 的文件 我使用下面的代码获取了系统的大小 NSError error NSFileManager fileManager NSFile
  • 使用 in 子句按数组顺序对 NSPredicate 进行排序

    我有一个NSPredicate会在一个内搜索 idNSArray的 ID 就像是 id in array 有没有办法获得按相同数组顺序排序的提取结果集 我现在的代码是 NSArray findIn NSArray identifiers i
  • NSEvent addGlobalMonitorForEventsMatchingMask:热键拦截

    I wanna intercept hotkeys that begin with Control Shift and ends with a character mandatory I have the following code NS
  • 如何在当前视图上方创建半透明视图层?

    您可能以前见过这种情况 它在 ScoutMob 等消费时尚应用程序中变得非常流行 我正在尝试在启动时实现 60 的透明视图 该视图将覆盖我的主屏幕 解释如何使用主屏幕的功能并在点击时消失 我已经完成了整个应用程序 它从几年前就开始使用 xi
  • 安塞布尔 + 10.11.6

    我在 非常 干净地安装 10 11 6 时遇到了 Ansible 的奇怪问题 我已经安装了brew zsh oh my zsh Lil snitch 和1password 实际上没有安装其他任何东西 我安装了ansible brew ins
  • 在 Objective C 中读取解析 XML 的 CDATA 部分

    我正在研究一个关于解析 google 天气 api 的 iphone 示例教程 该 api 似乎不再存在 所以我找到了一个替代方案 本教程使用 libxml2 和 xpath 查询来解析 xml 文件 我成功解析了大部分数据 我遇到的问题是
  • Mac OSX Snow Leopard 上的 ImageMagick。有什么办法让它编译并运行吗?

    看来我在 Snow Leopard 上运行标准 Unix 东西比任何其他平台 包括 Windows cygwin 都遇到更多麻烦 在过去的几天里 我一直在尝试让 ImageMagick 在 Snow Leopard 上运行 最明显的方法 M
  • 我可以混合 UITableViewDelegate 的 didSelectRowAtIndexPath: 吗?

    问题是这样的 我需要能够在具有大量表视图的大型现有应用程序中获取 didSelectRowAtIndexPath 的分析 我的第一个想法是在 didSelectRowAtIndexPath 上进行方法调整 但是我的应用程序崩溃并显示 无法识

随机推荐

  • 构建一个没有源代码的linux模块

    我只是想知道 是否可以在没有源代码的情况下构建 插入模块 假设我下载了一个 openSuse 操作系统 但没有附带内核源代码 如何在不重新编译内核的情况下编译模块并插入模块 对于没有内核源码的openSuse来说 想要找到完全相同版本的源码
  • 传递给 sed 命令的 -n 参数有何意义?

    有人可以告诉我怎么做吗sed n 1 p工作 下面是我用来根据分配的节点对 k8s 中的 pod 进行排序的完整命令 kubectl get pods o wide all namespaces sort k8 r sed n 1 p 上面
  • 初始化二维数组而不指定大小

    我可以在 c 中初始化一维数组 无论是否初始化其大小 int x 1 2 3 4 5 int y 5 1 2 3 4 5 但是 当我尝试对二维数组执行相同操作时 例如 int x 1 2 3 4 5 6 我得到一个error array t
  • 为什么串口在Unity中不能正常工作?

    我需要帮助 我很绝望 在两周的时间里 我一直在研究我的项目 该项目使用串行端口通信 PIC 串行板 我必须设置连接 但无法从 COM 端口获取数据 我读过一些论坛 问题的原因似乎是执行不完整系统 IO 端口类 当我尝试获取 COM 端口的数
  • 何时使用:htmlspecialchars? [复制]

    这个问题在这里已经有答案了 我需要使用以下方法将字符串转换为特殊字符 htmlspecialchars 我的问题是 我应该在将数据提交到数据库之前对其进行转换 还是应该在显示数据之前对其进行转换 您应该在将数据插入数据库之前对其进行清理 并
  • 解释 Mike Bostock 的 d3.js Dragmove 函数

    我目前正在尝试在 d3 脚本中创建可拖动行为 我正在研究迈克博斯托克的例子 http bl ocks org mbostock 1557377 这是有问题的函数 function dragmove d d3 select this attr
  • 编译错误:需要标识符

    import java io public class details BufferedReader in new BufferedReader new InputStreamReader System in System out prin
  • 将字符串转换为浮点数 SQLAlchemy

    从数据库读取时有什么方法可以将字符串转换为浮点数吗 所以我的专栏size由字符串值组成 即 45 当我使用 SQL Alchemy 查询数据库时 如何获取浮点值 我知道最简单的方法是float value 但如果该值为NULL我需要处理捕获
  • Android 模拟器上的蓝牙支持

    我想知道制作模拟器的开发团队是否有一些信息可以使蓝牙在 Android 模拟器中工作 指出一些有关它的链接 他们是否有发布日期或者他们是否会使其在未来工作 据我所知 模拟器不支持蓝牙 我将不得不在一些课程中教授安卓和蓝牙 学生需要在 And
  • 查找当前文件夹的路径 - cmd

    我使用此脚本查找当前文件夹及其 bat 文件 for f i in 0 do set curpath dpi echo curpath 如果路径包含空格 它无法正常工作 D Scripts All Scripts gt 仅检索 D Scri
  • 无法播放 mp4 转换后的文件 - JavaFX 2.1

    我已经转换了我的 mov视频到 mp4 但是当我在 javafx 应用程序中播放视频时 它不起作用 我可以听到视频文件的音频 但没有图片 也许 mp4 的编解码器不正确 有什么想法或解决方案吗 UPDATE 使用相同的代码 我在相同的条件下
  • Swagger Gateway 微服务聚合

    我正在使用 SpringBoot 开发一个微服务应用程序 有面向公众的网关微服务 它将请求重定向到特定的微服务 在不同的主机上运行 现在 我有多个微服务 每个微服务都使用 Swagger 公开了它们的 API 我们希望为公共客户聚合所有这些
  • 如何从 extjs 4 商店获取数据

    我一开始就使用 ext js 4 我试图在使用 store 启动应用程序时获取当前用户数据 但我没有从商店获取任何数据 甚至 store count 返回 0 我发现很多描述如何创建存储 但没有描述如何访问其中的数据 我设法使用 Ext a
  • 以语义方式填充元组列表

    我正在编写一段代码 我必须处理元组列表 其中 键 的顺序和名称 fst元组的 s 匹配某个模板 我通过验证并 如果需要 根据输入生成有效列表来实现容错 这是我的意思的一个例子 给定密钥模板 hello world this is a tes
  • 如何在 Lotus Domino 上设置 CORS?

    我尝试通过跨域请求通过 REST 与 Domino 进行通信 但遇到了问题 我已经设置了一个 Internet 站点文档 其中包含 IP 地址 本地主机和作为主机名列出的服务器名称 该网站正在按照我在该网站上设置的重定向规则运行 我还使用以
  • 添加到 CodeBehind 的代码未执行

    我对 Umbraco 很陌生 我仍在摸索它的工作方式 所以我完全有可能错过了一些非常明显的东西 我被要求修改 MasterPage 上滑块的功能 我发现滑块的标记位于 MasterPage 的 cs 文件中 void CreateSlide
  • 检索音频 - 二进制文件 - 存储在我的 Mlab 中

    基本上 我已经使用 MediaDevices getUserMedia WebRTC API 设置了一个应用程序 我已经录制了音频 理论上一切都很好 但我现在必须检索音频来听他们的声音 我现在想知道如何在我的 MongoDB 数据库中下载音
  • “标题”视图和按钮:如何将侦听器附加到没有自己的 Activity 的“标题”中的按钮?

    我已经触及这个问题here 克里斯托弗对此给出了答案 但我不太明白 所以我认为是时候让它成为一个真正的问题 而不仅仅是 跟进 目前 我正在编写的应用程序有 4 个不同的屏幕 屏幕 1 节点列表 主屏幕 屏幕 2 选项菜单 带按钮的表格布局
  • 无法更新 Dart SDK。重试

    我正在尝试安装颤振 但是当我运行 cmd flutter doctor 时发生错误 正在检查 Dart SDK 版本 PowerShell exe 未被识别为内部或外部命令 可运行的程序或批处理文件 错误 无法更新 Dart SDK 正在重
  • 子类化 NSDrawer 的 contentView 以实现完全自定义的抽屉

    我想通过子类化 NSView 并在其中完成所有视图绘制来完全实现我自己的自定义抽屉 我创建了一个自定义 NSView 类 除了实现 initWithFrame 和 drawRect 之外几乎不做任何事情 我已经记录了 NSView 的框架