Author name: 哈呜

SwiftUI Bug – NSWindow.setContentSize 获取到错误 size

发现这个问题的起因是我想实现一个 macOS App 的设置窗口,窗口大小自动随内部视图变化尺寸,并且是能平滑地有动画效果的变换尺寸。期望效果如下图所示: 这张 GIF 中的窗口来自 Preferences 。它的底层实现是利用点击 NSToolbar 上的 NSToolbarItem,来改变窗口内的视图,并根据新视图的大小设置窗口尺寸( NSWindow.animator().setFrame() )。但是这些都是基于 AppKit 中的类与函数,我希望能够简单的利用 SwiftUI 来实现类似的效果。 1、简单模型 我用 SwiftUI […]

SwfitUI 进阶 – View 与 NSView 互相转换

开发环境: macOS 10.15.5 Xcode 11.7 我其实挺喜欢 SwiftUI 的,首先 Swift 语言代码简练,SwfitUI 可以直接用代码进行布局且方便预览,很符合现代开发的习惯。而不是像 Objective-C 那样,语句繁复,还要用 Xib 这种可视化工具进行拖拽布局。 但不幸的是,由于 SwfitUI 是2019年才正式发布的,所以还有很多欠缺的功能,以及莫名其妙的 Bug。为了弥补这些不足,我们可以将成熟的 AppKit

SwiftUI 进阶 – 推送消息到通知中心

注意:不管程序是 foreground running, background running 还是 not running,只要在通知中心添加了“推送请求”,那么通知中心就可以到点触发该通知的推送。 1、本地通知 直接上代码吧 import SwiftUI import UserNotifications struct TestNotification: View { var body:

Linux 三种设置环境变量的方法

一、命令前置的临时环境变量 网上一搜一大把都是说 export 命令与 .bash_profile 文件的,却鲜有人提及可以在命令行语句前设置临时环境变量,并且该变量只对当前语句有效。 # usage: var=value [var2=value2 …] script var=value sh -c ‘echo $var’ # 打印 value

Carthage 依赖管理工具的使用

快速上手 1. 安装 carthage brew install carthage 2. 创建依赖文件 在项目根目录下创建 Cartfile 文件。在文件中写入依赖,比如: github “Alamofire/Alamofire” ~> 4.7.2 3. 下载并编译依赖库 在项目根目录下执行 carthage

SwiftUI 入门 — 系统状态栏程序

基于 Xcode Version 11.5 1. 新建项目 输入项目名称,选择 SwiftUI,选择 Core Data。 因为用到了 Core Data,这里需要修改自动生成的 AppDelegate.swift 中的一行 BUG 语句(升级到 Xcode 11.6 了依然存在。。)

Scroll to Top