处理多个 NSTableView 的最佳方法

2023-12-21

在不使用 Cocoa Bindings 的情况下处理多个 NSTableView 的最佳方法是什么?

在我的应用程序中,我有两个 NSTableViews ,它们之间的关系足够密切,因此我使用相同的对象作为两者的委托和数据源。问题是两个 tableView 调用相同的方法。我目前根据 NSControl 标签区分两个 tableView。

我越深入地研究这段代码, -tag 的使用看起来就越难看。我最终创建了大量重复的代码来区分每个委托/数据源方法中的 tableView。该代码最终明显是非面向对象的。

我可以创建一个单独的对象来处理一个或另一个 tableView,但是该对象的创建很大程度上是一种人为构造,只是为了提供不同的委托/数据源。

现在大家都只使用 Cocoa Bindings 吗?我避免使用绑定,因为我想在可在 Mac OS 和 iPhone 之间转移的技术上磨练我的 Cocoa 技能。


NSTableView 的每个委托/数据源方法都会传递调用它的 NSTableView 实例作为第一个参数(传递 NSNotification 对象的实例除外,在这种情况下,NSNotification 的object是表视图实例)。一些例子包括:

- (int)numberOfRowsForTableView:(NSTableView*)aTableView;

- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn*)aTableColumn row:(NSInteger)rowIndex

- (void)tableViewSelectionDidChange:(NSNotification *)aNotification

如果您使用一个控制器对象作为多个表的委托/数据源,则可以仅使用该参数来区分它们。

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

处理多个 NSTableView 的最佳方法 的相关文章

  • 为什么这段代码不能产生正确的输出? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 给定一个字符串和一个数字 该函数将从
  • NSRunningApplication - 终止

    我将如何使用NSRunningApplication 我有与启动应用程序相反的东西 NSWorkspace sharedWorkspace launchApplication appName 但我想关闭一个 当我调试代码时出现错误NSRun
  • 如何使用 NSWorkspace launchApplicationAtURL?

    我尝试使用以下命令运行 TextMate foo txt 的等效项在 URL 处启动应用程序 二进制文件的名称是 TextMate 我有一个参数 我尝试了以下代码 但它似乎不起作用 find the textmate NSURL bURL
  • 读取 DOMDocument 并使用 CSS 选择器查找元素

    我必须将 Android 应用程序转换为 iOS 该应用程序深入使用了jsoup http jsoup org 图书馆和element select cssQuery http jsoup org apidocs org jsoup nod
  • 一段简单的代码,在 GC 下运行良好,但在 ARC 中开始崩溃

    我有以下简单的 检查我的应用程序是否设置为在登录时启动 代码 它在垃圾收集下工作得很好 然而 自从我开始使用 ARC 并插入了 bridge 根据需要 代码开始随机且不可预测地崩溃 根据堆栈跟踪 代码在某些期间崩溃CFRelease 有什么
  • Cocoa webview UserAgent“webkit-legacy”问题

    我解决了这个问题 请看下面所选的答案 我一直在努力寻找导致 OSX Cocoa 应用程序的 WebView 与 Safari 表现不同的原因 事实证明 用户代理是不同的 有点明显 并且我正在访问的网站不知道如何处理它 令人惊讶的是 它是ht
  • 无法将 NSMutableDictionary 发送到另一个类

    All 我试图将 NSMutableDictionary 响应 发送到我的另一个类 或者更确切地说 让另一个类从这个类中提取字典 当另一个类使用 getResponse 方法时 它返回 null 我附加的代码是我的 XML 解析器 它将我需
  • 将 NSAttributedString 的子字符串替换为另一个 NSAttributedString

    我想替换一个子字符串 例如 replace of an NSAttributedString和另外一个NSAttributedString 我正在寻找一种等效的方法NSString s stringByReplacingOccurrence
  • 如何对 iPad 应用程序进行类转储?

    我正在尝试运行 iPad 应用程序的类转储来探索其架构 我使用 The Unarchiver 提取了 ipa 文件 并从 Payload 文件夹中对 app 文件运行了 class dump 但是 我收到此错误 Generated by c
  • 如何使用NSDecimalNumber?

    我正在构建一个需要对金钱进行计算的应用程序 我想知道如何正确使用 NSDecimalNumber 特别是如何从整数 浮点数和双精度数初始化它 我只发现它很容易使用 decimalNumberWithString 方法 这 initWith
  • 解析和更改 NSPredicate

    我必须将数据从以前的应用程序版本迁移到新版本 这也会影响一些谓词 NSPredicate实例 由用户保存 这意味着我必须以编程方式更改它们 目前我尝试解析我得到的字符串 NSPredicate predicateFormat 并手动更改一些
  • 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 那么可以
  • 可可:NSView原点x在底部

    我正在以编程方式创建一个NSWindow以及其上的控件 看来原点 0 0 位于左下角 这对我来说很奇怪 来自其他 GUI 工具包 是否有一些标志 以便我可以更改它 使原点位于左上角 在 OS X 上 原点位于左下角 对于屏幕坐标和视图框架来
  • NSTextField 委托通知——如何获取文本?

    我一直在尝试学习使用 Xcode 但我对如何注册感到困惑NSTextField已经改变 本质上 我有一个NSTextField和一个按钮 单击该按钮会填充字段中的文本 但是 我希望能够获取该字段的文本 而无需使用文本字段 操作 结束编辑时发
  • 以编程方式设置 Mac 鼠标/触控板速度

    我正在尝试更改我正在开发的应用程序的鼠标跟踪速度 注意 不是加速 我到处寻找一种方法来做到这一点 但找不到任何东西 我怀疑这与我在 IOKit hidsystem 框架上的这个函数中给出的值有关 IOHIDSetAccelerationWi
  • 有没有一种“正确”的方法让 NSTextFieldCell 绘制垂直居中的文本?

    我有一个NSTableView有几个文本列 默认情况下 dataCell这些列是 Apple 的一个实例NSTextFieldCell类 它可以完成各种奇妙的事情 但它绘制与单元格顶部对齐的文本 并且我希望文本在单元格中垂直居中 有一个内部
  • 从 NSString 中去除非字母数字字符

    我正在寻找一种快速简便的方法来从文本中删除非字母数字字符NSString 可能使用的东西NSCharacterSet 但我累了 似乎没有什么返回只包含字符串中字母数字字符的字符串 我们可以通过拆分然后合并来做到这一点 组件Separated
  • [NSDictionary getObjects:andKeys:] 的示例

    我找不到该方法的工作示例 NSDictionary getObjects andKeys 唯一的example http www mail archive com cocoa dev lists apple com msg24959 htm
  • 如何使用 Cocoa Autolayout 根据优先级调整两个子视图的大小?

    我正在 Cocoa 中使用自动布局 有些事情对我来说并不清楚 我在一个窗口上有 2 个视图 每个视图的宽度是父窗口宽度的1 2 View1 View2 如果我调整窗口大小 我希望首先调整 View2 的大小 View1 View2 当 Vi
  • 如何检测Mac上外接显示器的连接和断开?

    您知道如何检测 Cocoa 应用程序中插入 拔出的其他屏幕吗 我想检测用户将另一个屏幕插入或拔出 Mac 的时刻 我怎么能这样做呢 你的答案就在石英里 include

随机推荐