首页
学习
活动
专区
圈层
工具
发布

macOS AppKit 的事件响应简介

每个应用都拥有一个单利的NSApplication对象来管理主线程的事件循环(main runloop),以及跟踪窗口和菜单的消息,分发事件给相应的对象,建立自动释放池和接收App级别的通知消息....NSApplication 的一个重要任务就是从macOS系统的窗口服务中接收事件(Event),然后将它们派发到相应的NSResponsder对象....NSApplication同时负责与macOS的系统服务交互(需要制作系统偏好设置的同学可要注意这里哦),这样可以使你通过服务菜单提供一些系统设置....一个事件(Event)是怎样开始传递到应用(Cocoa Application)的我们这里说的事件,是指用户通过连接到macOS系统中的鼠标,键盘或者触控板,手写笔等硬件设备的具体操作(比如按下鼠标的按键...内核系统的I/O Kit,生成一个硬件级别的事件. 3.驱动程序将这个事件发送到macOS系统的窗口服务的事件队列中. 4.驱动程序通知macOS的窗口服务,告知其已经添加了一个事件到队列中待处理. 5

3.4K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Mac开发跬步积累(六): 响应链NSResponder Chain

    关于macOS 事件响应架构 可以参看我的另一篇文章macOS AppKit 的事件响应简介,本文是对事件响应的经一步实践与讨论,通过代码细节来展示一些实际开发中的问题与原因,仅供学习讨论. 0x00...)的响应链进行处理;事件消息的处理起始于NSWindow的第一个派发对象....对象的最初始第一响应者是它自己,当window显示在屏幕上时,也可以手动设定它的第一响应者对象(使用NSWindow对象的makeFirstResponder:方法)....当一个NSWindow对象在接收到鼠标点击(mouse-down)事件时,会自动设置鼠标所处的View为第一响应者;那么NSWindow对象如何确认某个对象是否能够成为第一响应者呢?...控制台信息 0x05 一些思考 本文通过示例抛砖引玉,仅仅讨论学习响应链的冰山一角,希望对学习macOS事件响应机制有所帮助,为了大家能够更深入了解响应链,留一些思考问题,激发大家的主动学习姿势: NSEvent

    2.8K10

    Swift-Attack:专为蓝队设计的macOS后渗透方法测试套件

    关于Swift-Attack Swift-Attack是一个专为蓝队安全研究人员设计的单元测试套件,旨在帮助广大研究人员检测某些常见的macOS后渗透方法,并构建检测方案。...环境以及开发者工具(可以通过macOS的应用商店安装),然后在Xcode中打开xcodeproj文件,并在Xcode中进行项目构建。.../Swift-Attack.app 接下来,在命令行窗口中使用cd命令切换到上述路径: cd Swift-Attack.app/Contents/MacOS........./Swift-Attack -h 工具使用 我们可以使用下列单个或多个参数选项来运行Swift-Attack: ./Swift-Attack [option1] [option2]......我们还提供了一个简单的macro.txt文件,以辅助测试macOS中Office宏执行的相关情况。

    1.3K60

    和安卓用户FaceTime,一个鼠标操作iPad和Mac!没有新硬件的WWDC,就不行吗

    答案自然是否定的,不管是iOS的新功能与隐私保护措施,还是iPadOS的新软件和流畅性,以及iPadOS和macOS之间的互操作性,仍然会让人眼前一亮。...通知可以显示联系人照片和更大的应用程序图标,这在iOS 15以新的过滤模式存在,称为焦点(Focus)。 不要小看了焦点的作用,这可以使用户自定义不同活动中显示的通知,并在所有设备上同步。...邮件还将阻止营销电子邮件中常用的跟踪像素,以确定电子邮件是否被打开和阅读。 其他更新包括通过名为LiveText的新功能。...其中最“专业”功能是使用Swift Playgrounds创建和发布应用程序。根据介绍,Swift Playgrounds可以把编程操作可视化,以帮助使用者更直观地去感知每一行代码背后的意义。...macOS 12:加强和iPad互动 在iOS和iPadOS之后,全新版的macOS也不容小觑。

    2.1K20

    苹果新系统很鸿蒙!iPad终于能写代码了,iPhone竟成异地恋神器 | WWDC 2021

    二是加入了专注(focus)模式,帮助你在工作、生活模式之间自由切换,共有四种状态可供选择。 这是进入工作状态之后的界面,就优先展示工作App的通知。 ?...对于程序员来说,一个好消息是iPad终于可以写代码了,过去iPad上的Swift Playground一直是编程初学者的入门学习工具。 ?...不过缺点也显而易见,Swift Playground仅支持编译Swift编写的苹果App。 至于其他编程语言还不支持,看来只有VS Code登上iPad,才能让程序员真正感受到生产力。 ?...Mac多屏协同 今年的新版macOS以Monterey命名,这是加州的一个海岸城市。 ?...借助 watchOS 8 中的睡眠应用程序,Apple watch可以在你睡觉时跟踪呼吸频率。 ?

    1.8K30

    macOS APP从零到上架

    有一款软件叫SimPholders,可以访问iOS开发模拟器的沙盒文件位置,最近,模仿这个功能,开发了一个小型的macOS APP可以一键访问沙盒位置,已经上架到APP Store,记录一下开发过程和上架过程...1、NSViewController/NSWindowContorller 在iOS上,APP只有一个Window,所有的View都在这个唯一的Window上,所以我们不需要管理Window,但是,在macOS...上可以有多个窗口Window,所以相对应的有NSWindow和NSWindowContorller这样的类来管理Window。...*window0 = [[NSWindow alloc]initWithContentRect:CGRectMake(0, 0, 500, 200) styleMask:style backing:NSBackingStoreBuffered...原因在于macOS 中创建 NSViewController 不会自动创建 view.View默认也不会创建layer,所以需要自定义View.

    1.2K20

    一键替换Key Mac软件的制作教程第一篇

    我们要选择macOS的平台选择Cocoa Application的工程模板,点击Next. ? 我们给工程命名OnceReplaceKey,(__),名字不是多么专业。...Language选择Swift,我们选中Use Storyboard. 点击Next保存在我们Github项目在本地的主目录。 ?...貌似只有>=10.10的才支持Swift3.0. ? 我们发现运行起来并不在中心点的位置,我们设置只要运行就在中心点。 因为之前没有接触过Mac的开发,因此也是不熟悉,我们谷歌一下。...我们在Stroyboard里面的NSWindow设置那里发现这个位置,看显示屏幕的位置就是我们刚才运行的位置。 initial Position看英文的意思是初始化的坐标,这个应该是的。...@IBAction func exportAction(_ sender: Any) { } 因为考虑到导入导出还有随时保存的功能都需要文件管理,我们新建一个类OFileManger.swift

    1.1K10

    iOS之深入解析Xcode 13正式版发布的40个新特性

    Xcode 13 需要运行 macOS 11.3 或更高版本的 Mac。...Command-1、Command-2 等)访问详细视图; 在命令行上使用 xctrace export 从包含Allocations, Leaks, 和 VM Tracker instruments 的跟踪中导出表数据...十九、Project Navigator 当 Products 组位于默认位置时,项目导航器会隐藏它; Move Focus to Editor 命令现在解释 vim 方向移动键; schema 编辑表不再有最大尺寸...Mac Catalyst 指定为平台; 当包声明工具版本为 5.5 或更高版本时,macOS 的构建条件不再适用于 Mac Catalyst; Swift Packages 现在支持 DriverKit...,必须从管理员帐户运行自动化,并且必须进行身份验证以授权自动化; XCTest 现在支持从 App Tracking Transparency 框架重置受保护资源“用户跟踪”的授权状态; 用 Swift

    12.8K40

    WWDC 2025 开发者特辑 | 肘子的 Swift 周报 #088

    访问我的博客 肘子的 Swift 记事本[2]查看更多的文章。加入 Discord[3]社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。...Virtualising macOS 26 Tahoe[34]by Howard Oakley[35] 在 Apple Silicon Mac 上安全运行 macOS 26 Beta(Tahoe)虚拟机的完整指南...macOS Tahoe Brings a New Disk Image Format[42]by Howard Oakley[43] macOS 26 Tahoe 引入了基于 APFS 稀疏文件的全新...15 中,只需在 Info.plist 中开一个开关,UIKit 和 AppKit 即可自动跟踪 @Observable 模型的属性访问并在视图更新时自动刷新;iOS 26 及以后版本还引入了更高效的...Cook up 3D charts with Swift Charts by Artem Novichkov[50] Swift Charts 在 WWDC25 中新增了 Chart3D API,让开发者无需依赖第三方库即可在

    68010

    苹果为傲慢付出了代价 | 肘子的 Swift 周报 #082

    18]在这篇内容详实的长文中,系统回顾了 iOS 与 Android 平台上深度链接的演进历史与原生实现方式,并深入讲解了如何借助 AppsFlyer 实现 deferred deep link 与归因跟踪...工具 Chord Provider[21] ChordPro 是一种用于编排歌词与和弦的文本标记格式,而 Nick Berendsen[22]开发的 Chord Provider,则是一个专为 macOS...对 macOS 程序员而言,Chord Provider 涵盖了 DocumentGroup管理、CoreAudio播放、SwiftUI 多种布局能力等诸多实践细节,是一个值得参考的典范项目;而对吉他爱好者来说...NSAlchemy:扩展 SwiftUI 的 macOS 控件库[23] 尽管 SwiftUI 近年来在 macOS 平台上不断扩展,但依旧缺少不少关键控件。为此,Joshua J....ComboBox、Checkbox、AcceleratorButton、ContinuousButton、SearchField、SegmentedControl等组件,适用于构建更完整、更具原生感的 macOS

    48310

    肘子的 Swift 周报 #034 | WWDC 2024,AI 并非全部

    自 2019 年 Swift 5 推出以来,Swift 社区花了五年时间准备这一重大版本更新,这也是 Swift 发展史上时间间隔最长的一次。...Untangling the AttributeGraph )[5] Rens Breur[6] AttributeGraph 是一个基于 C++ 的私有框架,它在 SwiftUI 的背后默默发挥着关键作用,主要负责跟踪数据依赖关系以确定视图的更新时机...在本文中,Rens Breur 将展示如何通过堆栈跟踪来阅读和理解 AttributeGraph 的函数,以及如何利用 LLDB 命令行工具来调用和查看 AttributeGraph 的各种打印功能。...SwiftUI Mac 应用中的场景类型 ( Scenes Types in a SwiftUI Mac App )[11] Natalia Panferova[12] 在使用 SwiftUI 构建 macOS...在本文中,Natalia Panferova 深入分析了这些场景类型的用途和实现方式,帮助开发者充分利用 SwiftUI 的强大功能,构建出更丰富、更高效的 macOS 应用程序。

    49910
    领券