为 NSTableView 单元格绘制带有边框和背景的文本

2024-02-01

我有一个基于单元格的表格视图,我想在该表格视图中显示某种标签,最好不必使用基于视图的表格视图。

是否有一种优雅的方式来实现类似此处示例(HTML)的效果,最好还具有背景颜色。


如果您想坚持使用基于单元格的表格视图,您可以子类化NSCell并覆盖:

- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView*)controlView
{
    NSRect insetRect = NSInsetRect(cellFrame, 2.0, 2.0);
    NSBezierPath* path = [NSBezierPath bezierPathWithRoundedRect:insetRect xRadius:3.0 yRadius:3.0];
    [path stroke];
    [[NSColor whiteColor] setFill];
    [path fill];
    [[NSColor brownColor] setStroke];
    [path stroke];
    NSMutableAttributedString* content = [[NSMutableAttributedString alloc] initWithString:@"DUPLICATE"];
    NSFontManager* fontManager = [NSFontManager sharedFontManager];
    NSFont* font = [fontManager fontWithFamily:@"Verdana"
                                              traits:NSBoldFontMask
                                              weight:0
                                                size:13.0];
    NSDictionary* attributes = @{NSFontAttributeName:font,
                                 NSForegroundColorAttributeName:[NSColor brownColor]};
    [content setAttributes:attributes range:NSMakeRange(0, [content length])];
    [content setAlignment:NSCenterTextAlignment range:NSMakeRange(0, [content length])];
    [content drawInRect:cellFrame];
}

上面的代码生成一个与您的按钮有点相似的单元格(您必须自己调整字体、颜色、线条样式等):

我还通过提供以下内容来调整表视图委托中的行高度:

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

为 NSTableView 单元格绘制带有边框和背景的文本 的相关文章

随机推荐

  • 如何启用 clang-tidy 的“现代化”检查?

    我刚刚安装ClangOnWin https sourceforge net p clangonwin 我正在努力得到clang tidy的 现代化 支票发挥作用 很遗憾 clang tidy似乎不知道他们 clang tidy list c
  • Active Directory:此处是否存在无效字符转义以及如何处理

    我已经构建了一个通过 SSIS 中的 C 脚本组件从活动目录中提取数据的过程 该数据需要加载到 SQL Server 中 我遇到了 DistinguishedName DN 和 CanonicalName CN 包含双引号 和反斜杠 转义字
  • ASP.NET 5 (MVC 6) - 资源本地化

    我花了大约一周的时间试图了解本地化在 ASP NET Core 1 0 中如何工作 我已经测试了很多选项 但我无法使其工作 我已经读过有关该错误的信息视觉工作室 https github com aspnet Localization is
  • 在 MATLAB 中计算组平均值/中位数,其中组 ID 位于单独的列中

    我有一列包含每个参与者的组 ID 有三组 因此该列中的每个数字都是 1 2 或 3 然后我有第二列 其中包含每个参与者的响应分数 我想计算每组内的平均 中位数响应分数 我已经设法通过循环每一行来做到这一点 但我觉得这是一个缓慢且次优的解决方
  • 使用 iphone sharekit 在一篇文章中发布多个 url

    我想使用共享工具包发布如下文本 在 Twitter Facebook 邮件上 Hi 这是分享文字 点击这里做某事 单击此处查看其他内容 Cheers 我有以下代码 IBAction shareOnTwitter id sender SHK
  • 如何区分点击事件和拖放事件?

    我对既可拖动又具有单击事件的元素有疑问 drag mousedown function class click function div class drag class div 当我拖放元素时 单击事件也会被触发 如何预防呢 您也可以同时
  • 获取给定地址的 std::vector 元素的索引

    假设我有一个 std vector 并且通过某种方式获得了第 n 个元素的地址 给定 std vector 的基地址 是否有一种简单的方法 比迭代向量更快 来获取元素出现的索引 假设我确定该元素位于向量中 由于您知道该元素位于向量内 并且向
  • 为 Swagger-UI 添加基本授权

    我目前部署了一个 swagger 项目 但在向其添加一些基本授权时遇到问题 当前 当您单击 尝试一下 时按钮 您需要登录帐户才能访问结果 我有一个帐户 我希望每次有人尝试访问 api 时都会自动使用该帐户 下面是我的项目的index htm
  • 如何在 HTML 中点击时隐藏或显示 div

    我有四个 HTMLdiv我想在单击时显示和隐藏它们如何执行此操作 div class image one img src image imageone png div div class image two img src image im
  • DOMPDF 不支持阿拉伯字符

    任何人都可以帮助我吗 我正在使用 DOMPDF 它运行良好 但不适用于阿拉伯字符 它显示了这些 我尝试使用 在 head 标签中 还 但它不起作用 请在这件事上给予我帮助 提前致谢 在你的 html 中使用下面的样式
  • 在我的 for 循环上进行计算,并希望使用某些函数在没有 for 循环的情况下进行计算

    dec 0 1 data np array 100 200 300 400 500 我有一个像这样的 for 循环 y np zeros len data for i in range len data if i 0 y i 1 0 dec
  • 使用 Moq 模拟数据集

    我正在尝试开始使用起订量 但无法找到任何好的资源来完成我需要的事情 我有一个数据接口类 它有一个 Get 方法 该方法通过存储过程返回数据集 这就是代码的编写方式 我目前无法更改它 因此必须以这种方式完成 我想通过模拟数据集并返回数据来测试
  • iOS 13 中使用 Quickblox 和 CallKit 的传入视频通话问题

    功能 我在应用程序中实现了 QuickBlox 视频通话 问题 如果应用程序处于后台 收件人不会收到来电通知 结果 视频通话在 iOS 12 上运行良好 但在 iOS 13 上仅出现问题 我查了很多链接来解决这个问题 https docs
  • Xcode 9 中 UINavigationController 方法 setToolbarHidden bug:无限计算自动布局约束导致 OOM

    我有一个实例UINavigationController嵌套在UITabBarController 我使用导航控制器到达某个视图控制器 选项卡栏仍然可见 然后从该控制器转到第二个视图控制器 选项卡栏不再可见 在第二个视图控制器中 一旦我调用
  • android 在发布版本中添加 DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    使用 api 级别 33 构建我的应用程序后 android 正在合并清单中添加新权限
  • 更改 statelistdrawable 文本颜色 android 按钮

    我正在开发 Android 应用程序 我对按钮的每个状态 按下 正常 有不同的背景可绘制和文本颜色 我创建了 statelistdrawable 对象以便能够添加背景可绘制对象 但我现在的问题是如何设置文本颜色 有人可以帮忙吗 Button
  • 单击提交按钮的值

    这应该是非常简单的 我正在检查是否使用 jquery 提交表单 该表单有多个具有不同值的提交按钮
  • 如何捕获 Mule foreach 作用域中的异常但保持进程继续进行?

    我是 Mule ESB 的新手 我创建了一个简单的流程 循环遍历订单列表并调用 Magento API 来逐一更新订单状态 我的问题是 如果 foreach 范围内发生任何异常 整个过程就会结束 我尝试使用异常策略来捕获异常 它确实捕获了异
  • ng-repeat 不适用于表 但适用于列表
  • 我有以下代码 Plnkr 上的代码 http plnkr co edit ULoa3SxPAFIPdHTvbguF p preview 我正在尝试使用ng repeat在一个表内 但这是行不通的 而相同的代码适用于列表 li 这是相同的片段
  • 为 NSTableView 单元格绘制带有边框和背景的文本

    我有一个基于单元格的表格视图 我想在该表格视图中显示某种标签 最好不必使用基于视图的表格视图 是否有一种优雅的方式来实现类似此处示例 HTML 的效果 最好还具有背景颜色 如果您想坚持使用基于单元格的表格视图 您可以子类化NSCell并覆盖