Cocoa 中的手动绑定

2024-04-01

我有一个 ImageView 显示一个锁,通知打开的文件是否被锁定。我有 2 张锁定和解锁案例的图像。我想将显示的图像与代表打开文件的对象的布尔值同步。

为此,我希望 ViewController 根据对象的锁定状态更改 ImageView 中的图像。所以对象和ViewController都有一个属性“isLocked”。

我怎样才能同步它们?在IB中这很容易,但我不知道如何以编程方式做到这一点。我尝试在 ViewController 的初始化方法中使用:

[ViewController bind:@"value" toObject:[ArrayController selection] withKeyPath:@"isLocked" options:nil];

但这不起作用。在文档中据说我必须在使用它之前公开我的绑定。

我尝试将以下代码放入对象的初始化方法中:

[self exposeBinding:@"isLocked"];

但Xcode不识别这个方法。

有人有建立这种绑定的经验吗?


正如@nick 所说,您需要键值观察。

[arrayController addObserver:self 
                forKeyPath:@"selection.isLocked"
                options:NSKeyValueObservingOptionNew
                context:@"this_context"]

然后,当 isLocked 更改时,您添加到 viewController 的 -observeValueForKeyPath:ofObject:change:context: 方法将被调用(只要您仅以符合 KVC 的方式操作 isLocked)。

options 参数允许您选择性地精确调整触发通知的条件以及随通知一起发送的数据。 context 参数可以帮助您区分您注册接收的通知和您的超类注册接收的通知。它是可选的。

绑定似乎对于保持两个值同步很有用。然而,这根本不是他们做的.

是的,很多事情似乎给人的印象是这就是他们所做的,并且没有太多说这不是他们所做的,而且很多人相信这就是他们所做的 - 但不,你不能为此使用它们。

只有少数类支持绑定(它们列在这里) http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CocoaBindingsRef/CocoaBindingsRef.html#//apple_ref/doc/uid/10000189i进而,这是重要的一点,这些类仅支持绑定其命名的bindings,并且这些绑定不是实例变量。例如NS文本字段 has a '字体家族名称' 尚未绑定 NSTextField不具有“fontFamilyName”属性或实例变量,甚至是派生变量。 NSTextField 确实有一个“isBordered”属性,但没有绑定 - 所以你不能绑定“isBordered”。

“绑定”任意类的任意属性并不意味着任何事情。

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

Cocoa 中的手动绑定 的相关文章

随机推荐

  • 让 IE 停止将 ajax 视为跨域(在 iframe 内)

    我有以下设置 www domain1 com page1 发出 ajax POST 请求www domain1 com page2 www domain1 com page2 返回 json 响应 www domain2 com page1
  • Python scipy.optimise.curve_fit 给出线性拟合

    我在使用 scipy 的 curve fit 参数时遇到了一个问题 我最初复制了文档建议的代码 然后我稍微改变了方程 效果很好 但是增加了 np linspace 整个预测最终变成了一条直线 有任何想法吗 import numpy as n
  • 计算以符号开头的行数

    有很多行包含 gt 文件中的符号 如何计算总数 gt 文件中的符号 我努力了sed and grep但它不起作用 您可以将 GNU grep 与wc grep o gt file txt wc l grep o将每个匹配项打印在单独的行上
  • 在 ASP.NET Core 中禁用分块

    我正在使用 ASP NET Core Azure Web 应用程序向客户端提供 RESTful API 但客户端无法正确处理分块 是否可以完全关闭Transfer Encoding chunked 无论是在控制器级别还是在文件中网络配置 我
  • HttpWebRequest 服务器不可用 503 问题

    我最初使用 WebRequest 和 WebResponse 来发送 Http Post 消息 我总是得到 好的 答复 我发布的消息是一个用 xml 中的证书签名的 XML 组成是这样的 发送到 https 网站的 C 服务 HTTPS 网
  • 查找子集合不包含项目的所有项目

    Given public class Order public string Name get set public List
  • Google App Engine 数据存储区数据隐私

    我正在使用 Google App Engine 和 Datastore 那里正在发生非常奇妙的事情 但我忍不住想知道 Google 可以如何处理我的应用程序存储在数据存储区中的数据 有人可以用简单的话解释一下吗 Thanks Google
  • 如何使用mapStruct映射用@XMLSeeAlso注释的JAXB元素?

    我正在尝试映射一个 bean 该 bean 具有一些 JAXB 元素 如 XmlSeeAlso XmlElement XmlSchemaType 作为该类的属性 XmlAccessorType XmlAccessType FIELD Xml
  • JoinQueryOver 和 JoinAlias 有什么区别?

    我需要知道 JoinQueryOver 和 JoinAlias 之间有什么区别 以及何时使用它们 从功能上来说 它们做同样的事情 创建与另一个实体的连接 唯一的区别是它们返回的内容 JoinQueryOver 返回一个新的 QueryOve
  • Java 整数比较两个整数时返回奇怪的结果?

    Integer i1 new Integer 9 Integer i2 new Integer 9 if i1 i2 System out println true else System out println false int i3
  • Rails 3 中的移动风格切换,辅助方法与媒体查询

    我正在研究为移动应用设计 Rails 应用程序样式的方法 这个想法很常见 为移动浏览器使用一组样式 为传统浏览器使用另一组样式 据我所知 Rails 中有两种基本方法可以做到这一点 使用辅助方法来检测用户代理 然后执行切换 应用程序控制器
  • Stackdriver Logging API 返回响应代码 200,但响应为空

    我正在尝试通过 Stackdriver Logging API v2 获取 stackdriver 日志 我通过从 google apps 脚本项目发出 POST 请求来实现此目的 特别是使用 UrlFetchApp 问题是 它运行成功 但
  • 在 AWS ebextensions 中执行命令

    我在尝试在 aws elasticbeanstalk 中上传实例时收到以下错误 The configuration file ebextensions setup config in application version t5 conta
  • ViewGroupOverlay 不显示视图

    我目前正在尝试创建一个益智游戏 其中有一个网格 每个单元格应该能够在触摸时显示视觉 并且仅视觉 指示 因此 我打算使用视图组叠加 https developer android com reference android view View
  • 如何使用 State Hook 在 React 中编写语义 UI 单选组?

    我正在尝试使用 React 中的 Semantic UI 编写一个单选按钮组 我可以在以下位置获取无线电组示例广播页面 https react semantic ui com addons radio 语义 UI 的工作 它是通过扩展来写的
  • Android,从文件计算 SHA-1 哈希,最快的算法

    我在 Android 上遇到 SHA 1 性能问题 在 C 中 我在大约 3 秒内计算出哈希值 在 Android 中进行相同的计算大约需要 75 秒 我认为问题出在从文件读取操作中 但我不确定如何提高性能 这是我的哈希生成方法 priva
  • 索引的最大大小/文档数量是多少 - 32 位操作系统上的 java lucene 3.0.2

    我正在使用 lucene 和 40GB 的数据 500M 的元组 2 个字段的行为类似于键值 我创建了一个 35 GB 的索引 但它不起作用 因此 我想创建一组较小的索引 但为此 我需要有关最大尺寸的信息 你使用什么文件系统 您绝对确定已创
  • 如何使用 XCTest 测试 staticTexts 是否包含字符串

    在 Xcode UI 测试中 如何测试 staticTexts 是否包含字符串 在调试器中 我可以运行类似的命令来打印出 staticTexts 的所有内容 po app staticTexts 但是如何测试所有内容中的任何位置是否存在字符
  • 创建一个简单的计时器来计算秒、分钟和小时

    我正在尝试创建一个非常简单的程序 基本上是一个计时器 我有三套标签 lbl seconds lbl minutes and lbl hours 这些标签的默认值为00 00我希望计时器为每个标签更改它 我已经用谷歌搜索过这个 但我似乎找不到
  • Cocoa 中的手动绑定

    我有一个 ImageView 显示一个锁 通知打开的文件是否被锁定 我有 2 张锁定和解锁案例的图像 我想将显示的图像与代表打开文件的对象的布尔值同步 为此 我希望 ViewController 根据对象的锁定状态更改 ImageView