核心数据图像不会加载到 NSTableView 图像单元中

2024-02-23

在我的代码中,我将图像存储到我的核心数据模型中(工作正常)。如果我将视图设置为具有 NSImageView 并将其数据绑定到 Controller Key:selection 和 modelKeyPath:myImagePath,则它可以工作。它将显示所选行的每个图像。

然后,我在 NSTableView 中创建一个新列,并将图像单元格拖到该列上。但是,我无法让我的核心数据绑定将图像显示在单元格中。我尝试过绑定值和数据,但没有成功。

既然我确定图像已正确存储,那么我在绑定中做错了什么以防止图像显示在表格单元格中?

非常感谢。

(我的背景:新的 Cocoa 开发人员最近读完了整本书。)


我不确定是什么原因导致了您的问题,但有一个简单的方法可以找出问题所在。将 NSValueTransformer 连接到绑定。然后在该变压器中,您可以记录一些内容以查明您是否传递了 nil 值,或者您可以将数据值转换为 NSImage 并将其传回……基本上您可以在变压器类中做任何您想做的事情。这是我在核心数据模型中的图像数据上使用的一个。

@interface DataToImageTransformer : NSValueTransformer {

}

@end


@implementation DataToImageTransformer

+ (Class)transformedValueClass {
    return [NSImage class];
} // the class of the return value from transformedValue:

+ (BOOL)allowsReverseTransformation {
    return YES;
} // if YES then must also have reverseTransformedValue:

- (id)transformedValue:(id)value {
    if (value == nil || [value length] < 1) return nil;
    NSImage* i = nil;
    if ([value isKindOfClass:[NSData class]]) {
        i = [NSKeyedUnarchiver unarchiveObjectWithData:value];
    }
    return i;
}

- (id)reverseTransformedValue:(id)value {
    if (value == nil) return nil;
    NSData* d = nil;
    if ([value isKindOfClass:[NSImage class]]) {
        d = [NSKeyedArchiver archivedDataWithRootObject:value];
    }
    return d;
}

@end

在 AppController 类中初始化变压器:

+ (void)initialize {
    DataToImageTransformer *transformer = [[DataToImageTransformer alloc] init];
    [NSValueTransformer setValueTransformer:transformer forName:@"DataToImageTransformer"];
    [transformer release];
}

然后在 Interface Builder 中输入“DataToImageTransformer”进行绑定。现在您可以控制绑定,并且可以按照我之前在变压器类中解释的那样进行。请注意,我使用 NSKeyedArchiver 将 NSImage 转换为数据并再次转换回来,但您可以使用 tiffRepresentation 或您想要的任何其他方法来代替它。

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

核心数据图像不会加载到 NSTableView 图像单元中 的相关文章

  • Xcode 7.3.1 可以在 macOS 10.12 上运行吗?

    我想安装并尝试 macOS 10 12 的新功能 我也很想在 Xcode 8 0 上工作 但同时我有一些应该在 Swift 2 2 Xcode 7 3 1 上编写的客户端项目 我不想使用 Swift 2 3 或 Swift 3 0 那么可以
  • 如何让程序在登录时自动启动?

    如何设置菜单栏应用程序在登录时自动启动 我希望这是默认的 我可以简单地通过在 info plist 中添加一个 bool 来做到这一点吗 此解决方案仅适用于非沙盒应用程序 LSSharedFile此解决方案中使用的功能仅适用于非沙盒应用程序
  • 经常访问 NSUserDefaults

    在我的应用程序的逻辑处理过程中 我需要频繁访问用户首选项 并多次访问 10 15 次 以确定需要处理什么以及如何处理 也许这个问题不是关于性能的问题 而是关于正确执行的问题 目前我正在做一个 NSUserDefaults standardU
  • Morphic 中的 Morph 和 Cocoa 中的 NSView 有什么区别?

    我想了解 Morphic 的独特之处 Morphic 比 NSView 或任何其他graphics类只允许重新实现一组有限的功能 Morphic 是一个可塑性极强的 UI 构建工具包 Morphic 背后的一些设计理念明确了这一意图 包括一
  • 在 iOS 7 中使用新的格式字符串说明符配置字典(复数支持)

    我正在尝试使用 iOS 7 中对复数的更复杂本地化的新支持 我创建了一个 stringsdict 文件 根据 Foundation 发行说明 以及 Cocoa WWDC 会议中的新增功能 中的信息进行格式化 我已经验证 stringsdic
  • 如何创建具有倾斜效果的 NSAffineTransform?

    我对用 Cocoa 绘图还很陌生 并且正在开发一个涉及六边形网格的实验性应用程序 为了简化这个过程 我想倾斜坐标系 使 Y 轴向左旋转 30 度 我在苹果手机上看到了这个可可绘图指南 https developer apple com li
  • 在核心数据中伪造动态模式?

    通过阅读有关 Core Data 的 Apple 文档 我了解到当您需要动态模式时不应该使用 Core Data 如果我想为用户提供创建自己的属性的能力 那么在核心数据模型中 如果我创建一些 虚拟 属性 例如 自定义十进制 1 自定义十进制
  • NSPopUpButton、绑定和缩短的寿命

    我试图了解使用 NSPopUpButton 是多么困难 它无疑是 Cocoa 中最难编程的用户元素 至少就我而言是这样 我想到的用例如下 我有一个名为 Port 的类 代表串行端口 属性中有一个名称字段 在 NSPopUpButton 中
  • 自动调整 NSTextView 和/或 NSScrollView 的大小

    我有一个NSTextView里面一个NSView 正在被使用NSPopover 不知道这是否相关 我正在尝试以编程方式自动调整大小 参见标题 我一直在努力解决很多问题 即 看着NSLayoutManager and usedRectForT
  • 从一个 NSManagedObjectContext 保存的更改不会反映在主 NSManagedObjectContext 上

    我有一个主NSManagedObjectContext是在appDelegate 现在 我正在使用另一个NSManagedObjectContext用于编辑 添加新对象而不影响主对象NSManagedObjectContext 直到我拯救它
  • NSPersistentStoreCoordinator 线程安全吗?

    我正在开发一个使用 Core Data 的 iPhone 应用程序 该应用程序调用 Web 服务 解析生成的 XML 文件 然后在我的应用程序中创建或修改 Core Data 对象 我已经处理了 Web 服务调用并异步解析 但我一直将解析后
  • 为什么 NSToolbarItem 自动被禁用?

    我的 Mac 幻灯片应用程序工具栏中的按钮有点问题 我希望在没有活动幻灯片时禁用这些按钮 在有活动幻灯片时启用这些按钮 为了实现这一点 我设置了按钮isEnabled财产给false在开始时 我已经尝试过 Interface Builder
  • 如何将本机 C 类型与 PerformSelectorOnMainThread: 一起使用?

    我想打电话 void setDoubleValue double value using performSelectorOnMainThread 我认为可行的是 NSNumber progress NSNumber numberWithDo
  • NSTokenField:标记的不同颜色

    我在我的 xib 中创建了一个 NSTokenField 我想在 tokenField 中显示不同颜色的令牌 含义 一些标记将是蓝色的 其余的将是红色的 根据其内容 那可能吗 以下代码对我不起作用 我希望有人能帮助我 id tokenFie
  • 如何向用户显示我的App当前的项目版本?

    我想将当前版本添加到我的应用程序的 关于 部分 如所附屏幕截图所示 Apple 提供版本控制 如何在您的应用程序中显示这些设置 经过进一步的搜索和测试 我自己找到了解决方案 NSDictionary infoDictionary NSBun
  • NSTextField:当用户单击文本字段之外时结束编辑

    我有一个NSTextField我根据用户操作设置可编辑 我想在用户单击窗口内文本字段之外的任何位置时结束编辑 看起来很简单 但我无法让它发挥作用 我实施了controlTextDidEndEditing and textDidEndEdit
  • CoreMediaIO,错误更新的属性 kCMIODevicePropertyDeviceIsRunningSomewhere

    当某些进程开始使用相机时 我需要接收一个事件 我通过 CMIOObjectGetPropertyData 完成此操作 但它不能正常工作 只有第一次访问时才是正确的值 我还尝试使用 CMIOObjectAddPropertyListenerB
  • 最近打开的应用程序[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有什么方法可以获取最近打开的应用程序 例如 4 个 的列表吗 如果是这样 怎么办 可可麦克 看看LaunchServices LSSh
  • 在 Cocoa OS X AVPlayer 中播放 HLS (m3u8) - Swift

    基本上我正在尝试在 Cocoa Swift 中使用 AVPlayer 播放 m3u8 HLS Live Stream 我对这门语言比较陌生 所以基本上掌握了一些示例代码 http qiita com ono matope items 23d
  • 从 NSImage 获取像素和颜色

    我创建了一个 NSImage 对象 理想情况下想确定它包含多少个像素颜色 这可能吗 此代码呈现NSImage into a CGBitmapContext void updateImageData if image return Dimen

随机推荐

  • 无法在 MySQL 中插入度数符号

    当我插入度数符号而不是保存它时 使用 PHP 输入表单 因为它在 MySQL 中显示的值是 例如如果我写 37 C 它被保存为 37 C 这是我的代码的示例
  • 使用视频脚本作为 div 背景 [ HTML / CSS ] [重复]

    这个问题在这里已经有答案了 抱歉 如果我的曲子不好听 我有这段html代码 HTML div class video bg Some Code to execute div CSS video bg width 600px height 6
  • 如何在 Tornado 中从子进程向 websocket-client 发送消息?

    我有龙卷风服务器 它从 websocket 连接接收消息 我需要将工作人员功能作为单独的进程运行 并且工作人员应该回答客户端 主要思想是在并行模式下工作 像这样的东西 def worker ws message input json loa
  • WASAPI:以最小延迟播放正弦波声音,无毛刺(独占事件驱动模式)

    我尝试在独占模式下使用 Windows 音频会话 API WASAPI 播放简单的正弦波形 但无论我做什么 都会遇到声音故障 我一直在使用MSDN 独占模式流示例 https msdn microsoft com en us library
  • Android:java.lang.IllegalArgumentException:服务未注册

    我有活动 启动服务并绑定它 但我希望即使活动关闭我的服务也能运行 所以我需要取消绑定它 当我尝试这样做 调用我的函数disconnectFromService 时 我总是遇到此异常 服务绑定成功 可以正常通信了 仅当服务已绑定时 我才尝试解
  • 使用 Google Sheets/Google Drive API 请求特定文件权限

    我正在使用 Google Sheets API 获取 Java 项目的工作表数据 一切都在本地按预期工作 但我使用的是详细权限范围https www googleapis com auth spreadsheets https www go
  • 常量表达式中具有未初始化成员的“默认”构造函数

    以下最小示例因未初始化数组数据成员而被 Clang 和 GCC 拒绝 class vector3 public constexpr vector3 default private float m data 3 constexpr auto
  • 带有超链接的 Pandas read_excel

    我有一个 Excel 电子表格 正在将其读入 Pandas DataFrame df pd read excel file xls 但是 电子表格的其中一列包含具有与其关联的超链接的文本 如何访问 Pandas 中的底层超链接 这可以用 o
  • 自定义 UITableViewCell 内的水平 UIScrollView - 使用 IB Storyboard - 不滚动

    主要目标是能够水平滚动每行的内容 我正在尝试使用 X Code 5 和 StoryBoard 来做到这一点 问题似乎很简单 但是经过几个小时的搜索 除了一个有点相似但仅使用编程方法的问题之外 我什么也没得到 see here https s
  • Android 动画时删除视图错误

    private void kartyafeleanim String idx1 String idx2 Animation anim1 AnimationUtils loadAnimation mycontext R anim scalab
  • Oracle数据库:如何选择所有列但首先返回某些列?

    背景 我有一个 Oracle 数据库表 其中有很多列 我正在对这些列运行一些查询 我不知道我在查询中到底要查找什么数据 所以我想返回所有列 但我不想寻找和啄食我知道有意义的列 Question 假设有一个表 表 1 A 列 B 列 C 列
  • 将菜单按钮添加到 VS2010 TFS 查询结果或工作项栏中

    我正在尝试将按钮添加到 Visual Studio TFS2010 工作项查询结果菜单栏以及为各个工作项显示的菜单栏 见下图 这实际上是可定制的且可行的吗 如果可以 如何实现 我会看一下这篇文章 TFS 2010 将菜单项添加到构建资源管理
  • 从浏览器检测Windows 10

    我需要在客户端运行 Windows 10 S 特别是 S 仅 Win 10 还不够 时将浏览器重定向到特定页面 用户代理似乎没有指定这一点 我已经找到了在客户端上通过 C 和 WMI 获取此数据的解决方案 但我需要在网页上运行 Javasc
  • MvvmLight EventToCommand 和 WPFToolkit DataGrid 双击

    试图弄清楚如何使用 EventToCommand 为行设置数据网格双击处理程序 该命令位于每行的视图模型中 只是that很大程度上来自我的经验 因为我还没有使用过交互 Thanks 我本来会使用 mvvmlight 标签 但我还没有足够高的
  • 如何使用 Kotlin DSL 创建 Fat JAR?

    我正在使用 Gradle 5 5 我有一个基于 Groovy 的构建脚本 我正在尝试将其迁移到 Kotlin DSL 这jar任务包含将所有依赖项复制到 JAR 文件的典型行 from configurations compile coll
  • 打开键盘时隐藏页脚 ionic4

    参考了这个链接 在键盘打开 Ionic3 上隐藏页脚 https stackoverflow com questions 48386422 hide footer on keyboard open ionic3 但问题也是一样的 问题与上图
  • 如何使用 OSGi 和 EE6 模块化企业应用程序?

    我知道已经有一些与该主题相关的问题 但我还找不到真正的解决方案 目前我正在使用 EE6 JPA CDI JSF 开发应用程序 我想采用一种更加模块化的方法 而不是将所有内容打包到 WAR 或 EAR 中并将整个内容部署在应用程序服务器上 我
  • WooCommerce 在产品标题中显示产品类别

    我有一个运行 WooCommerce 版本 2 3 8 的 Wordpress 版本 4 2 2 电子商务网站 在我的个人产品页面上 我希望将产品的标题设置为还包括我在 WooCommerce 中创建的以及该产品所属的自定义类别 我找到与单
  • 项目贡献者的 github graphql 查询

    我想使用 GitHub Graphql api 查询项目贡献者 有人能给我任何提示吗 刚刚尝试了一段时间 我想我错过了一些小元素 我想要得到某样东西https api github com repos facebook react cont
  • 核心数据图像不会加载到 NSTableView 图像单元中

    在我的代码中 我将图像存储到我的核心数据模型中 工作正常 如果我将视图设置为具有 NSImageView 并将其数据绑定到 Controller Key selection 和 modelKeyPath myImagePath 则它可以工作