当前位置: 首页 > news >正文

利用KVO监视一个view的frame

首先,keyPath一定是frame,而不是frame.origin.x之类的路径,因为再点下去的话,就是访问结构体内部的值了,KVO是无法检测的,会报错找不到KeyPath。

代码如下:

1     [_funcMenuVC.view addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew context:nil];

在KVO对应的方法里打印监测到的值,会发现是一个NSRect类型,为了方便操作需要转化为CGRect,经过尝试发现KVO内部其实是用NSValue包装了被监测的结构体,所以首先需要将change的内容转化为NSValue,然后解出结构体:

1     CGRect rect = [((NSValue *)[change objectForKey:@"new"]) CGRectValue];

这样就可以进行进一步操作了。

转载于:https://www.cnblogs.com/Steak/p/3762730.html

相关文章:

  • 操作系统的主要功能
  • ubuntu server 安装 mantis bug tracker 中文配置
  • String Format 的实现
  • 信息社会
  • 模板引擎Nvelocity实例
  • 闲聊产品】之三:点评 WWDC 2014
  • 判断Laravel Eloquent获取数据结果集是否为空
  • 具有先进的图像处理和图像识别技术的条码识别引擎2D Barcode Decoder DLL
  • HeadFirst 设计模式 04 工厂模式
  • WPF RichTextBox 做内容展示框 滚动条控制判定是否阅读完成
  • 迷你MVVM框架 avalonjs 沉思录 第3节 动态模板
  • systemtap -oracle
  • 各类程序员学习路线图
  • apache安装配置说明
  • Spring整合Quartz定时发送邮件
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【笔记】你不知道的JS读书笔记——Promise
  • AHK 中 = 和 == 等比较运算符的用法
  • css的样式优先级
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • JavaScript-Array类型
  • mysql 5.6 原生Online DDL解析
  • QQ浏览器x5内核的兼容性问题
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 构造函数(constructor)与原型链(prototype)关系
  • 观察者模式实现非直接耦合
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 码农张的Bug人生 - 见面之礼
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 原生js练习题---第五课
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • (02)Hive SQL编译成MapReduce任务的过程
  • (145)光线追踪距离场柔和阴影
  • (6)添加vue-cookie
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (pojstep1.1.2)2654(直叙式模拟)
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (二)Eureka服务搭建,服务注册,服务发现
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (南京观海微电子)——COF介绍
  • **python多态
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .NET Core WebAPI中封装Swagger配置
  • .Net Core和.Net Standard直观理解
  • .net 发送邮件
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • /etc/motd and /etc/issue
  • :=
  • :O)修改linux硬件时间
  • @RestController注解的使用
  • [2]十道算法题【Java实现】