🌓

Scroll to row for UITableView after reloadData

在 tableView reloadData 后滑动到指定位置,比如下拉加载更多聊天记录,并保持列表的当前位置。 1tableView.scrollToRow(at: indexPath, at: .top, animated: false) 但是列表有跳动,滑动的位置并不对。解决方法也很简单,在 reloadData 后调用下 tableView.lay...

阅读全文

UIStackView 的 removeArrangedSubview 方法

当在 UITableViewCell 中使用了 UIStackView 时,在 prepareForReuse() 中调用了 UIStackView 的 removeArrangedSubview: 方法,发现 cell 重用时依然会显示错乱,查了一下文档,发现调用 removeArrangedSubview: 后,子 view 并不会从视图中移除,需要额外...

阅读全文

Alfred 以管理员身份执行脚本

为提高工作效率,我们经常会写一些自动化脚本,也会使用些效率工具,比如 Alfred,两者相结合,借助 Alfred 来快速执行些脚本,但有些脚本需要以管理员身份执行,那么如何在 Alfred 中以管理员身份来执行脚本呢? 需要借助于 AppleScript,在 Alfred 的 workflow action 中选择 Run NSAppleScript,不...

阅读全文

Fix Xcode source editor extension not visible in System Preferences - Extensions

今天发现 Xcode 插件失效了,在「系统偏好设置 - 拓展」里,Xcode Source Editor 也不见了。最后在 这里 找到了解决方法。 The article Xcode​Kit and Xcode Source Editor Extensions by Zoë Smith, March 25th, 2019, says: Finally, ...

阅读全文

优化 Microsoft AutoUpdate 下载慢的问题

最近 Microsoft AutoUpdate 下载特别慢,还经常失败,于是在 Console 中看了下它的日志,发现其访问了 azurewebsites.net 和 akamaized.net,下载是从 akamaized.net 这里下载的。于是把这两个域名都加入到某软件的自定义规则中,然后下载就快多了。

阅读全文

剑指 Offer 编程题 in Swift

1. 赋值运算符函数 2. 实现 Singleton 模式 3. 数组中重复的数字 3.1 找出数组中重复的数字 3.2 不修改数组找出重复的数字 4. 二维数组中的查找 5. 替换空格 6. 从尾到头打印链表 7. 重建二叉树 8. 二叉树的下一个节点 9. 用两个栈实现队列 10. 斐波那契数列 10.1 求斐波那契数列的第 n 项 10.2 ...

阅读全文

数据结构和排序算法 in Swift

1. 数据结构 1.1 链表、栈和队列的 Swift 实现 1.1.1 链表 (Linked List) 1.1.1.1 节点的抽象数据类型 1.1.1.2 节点的实现 1.1.1.3 双向链表的抽象数据类型 1.1.1.4 双向链表的实现 1.1.2 栈 (Stack) 1.1.2.1 栈的抽象数据模型 1.1.2.2 栈的实现 1.1....

阅读全文

通知中心要不要移除观察者

If your app targets iOS 9.0 and later or macOS 10.11 and later, you don’t need to unregister an observer in its dealloc method. Otherwise, you should call removeObserver(_:name:ob...

阅读全文

基于 Ubuntu 搭建 FTP 文件服务

2020.08.31:必应壁纸脚本更新,获取 UHD 分辨率图片 1、使用 apt-get 安装 vsftpd: 1sudo apt-get install vsftpd -y 1.1、删除掉 pam.d 中 vsftpd,因为该配置文件会导致使用用户名登录 FTP 失败 1sudo rm /etc/pam.d/vsftpd 2、新建用户主目录 /ho...

阅读全文

标记剪贴板内容为 Concealed

当要把敏感数据复制到剪贴板时,应将其标记为 org.nspasteboard.Concealed,如密码等。 此标识符为通用标识符,一些密码管理软件会将复制的密码标记为 Concealed,而一些剪贴板管理软件会自动忽略被标记为 Concealed 的内容。 123456let pasteboard = NSPasteboard.generalpasteb...

阅读全文