Tip: NSOutlineView 之 stronglyReferencesItems

NSOutlineView 在 10.12 后引入了一个新的属性 stronglyReferencesItems,默认为 true,作用就是强引用了 data source 返回的对象。如果你正在使用 Realm 做数据存储,在一个删除需求里,realm delete 一个 object 后接收到 Notification,这时调用 outlineView.removeItem 一定会跪, »

61 61

Cocoa:给 NSTableView 加上右键菜单

可以说几乎每个应用都需要用到 TableView,iOS 上如此 macOS 也不例外。因为桌面应用支持鼠标操作,所以当需要操作某一行的内容时,最常见的就是右键弹出菜单,选择需要的操作。开发一个 macOS 应用,这是最基本也是一定会遇到的需求。下图是 Things 3 任务列表的右键菜单。 但是在我的印象中,加个右键菜单并不容易,这个印象来自 12 年在公司做  doit.im  的 »

61 61

Cocoa 键盘事件处理:Key Equivalents

本文通过具体例子介绍了如何使用 NSMenu 和 Menu Item 的 Key Equivalents 给应用增加快捷键支持。 场景 我们在开发 Linnk 的 Mac 客户端,第二栏是书签列表,对于每个书签的 cell 我们加上了右键菜单来完成一些固定的操作,比如进入编辑、星标、删除等,在《Cocoa:给 NSTableView »