Swift tips: NSAttributedString 的 baselineOffset

本文介绍如何使用 baselineOffset 使 NSAttributedString 中的图片和文字在垂直方向上对齐。 NSAttributedStringKey.baselineOffset 为了在一个多行文字的 UILabel 首部插入一个 icon,使用了 NSAttributedString 实现: let attributes = [ NSAttributedStringKey.font: UIFont.systemFont(ofSize: 17.0), NSAttributedStringKey.foregroundColor: UIColor. »

Swift Tips: Variable used within its own initial value

在某些情况下,我们希望能够在一个函数传入的函数中调用这个函数的返回值。举个例子,UIApplication 有一个成员函数: func beginBackgroundTask( expirationHandler handler: () -> Void? = nil) -> UIBackgroundTaskIdentifier beginBackgroundTask(expirationHandler:) 返回一个数字(UIBackgroundTaskIdentifier 实际上是 Int),在 expirationHandler: 中我们需要使用这个数字 —— 在这个函数中, »

Cocoa 键盘事件处理:Keyboard Actions

本文给出了在 Key Actions 阶段处理按键事件的两个具体例子。 前言 在 Cocoa 中,NSResponder 中的方法与键盘事件有默认绑定(参考 Default Mac OS X System Key Bindings)。可以通过重载 NSResponder 的方法或者在 keyDown: 中直接调用自定义方法来实现自定义操作。 具体实现 下文以 CurrencyX »

Cocoa: Understanding Responder Chain

最近给 CurrencyX 添加手势滑动返回遇到一些问题,特地复习了一下 Responder Chain 的内容,本文翻译并梳理了 Cocoa Event Handling Guide 中的 Responder Chain 部分。原文:The Responder Chain 定义 在 App 中发生的 Event 或者 »

Cocoa:应用内键盘事件处理

本文将介绍 Cocoa 中应用内(不包含全局快捷键)键盘事件处理路径,如何在路径的每个阶段重载相应的方法来处理事件。 前言 本文详细介绍了按键事件路径及处理要点概念,主要翻译了官方文档 Handling Key Events。具体实现可以参看另外两篇文章:键盘事件处理:Key Equivalents 和 键盘事件处理:Keyboard Actions。 了解 Cocoa Key Events macOS 系统在用户按下键盘按键( »