戴铭

Results 93 issues of 戴铭

![](https://user-images.githubusercontent.com/251980/154916174-2e9b1bd8-992a-485e-803a-07da59d0c7e3.png) 使用方法如下: ```swift struct PlayTextFieldView: View { @State private var t = "Starming" @State private var showT = "" @State private var isEditing = false var placeholder = "输入些文字..." @FocusState...

![](https://user-images.githubusercontent.com/251980/154667163-e906dfd4-074e-4c04-9c80-94af86df4ba6.png) 对应的代码如下: ```swift import SwiftUI import CodeEditorView struct PlayTextEditorView: View { // for TextEditor @State private var txt: String = "一段可编辑文字...\n" @State private var count: Int = 0 // for...

![](https://user-images.githubusercontent.com/251980/154474725-d696d50b-9da7-4a0d-808f-07894a9597cb.png) ```swift struct PlayLabelView: View { var body: some View { VStack(spacing: 10) { Label("一个 Label", systemImage: "bolt.circle") Label("只显示 icon", systemImage: "heart.fill") .labelStyle(.iconOnly) .foregroundColor(.red) // 自建 Label Label { Text("自建...

将 NSSplitView 里的其中一个 NSView 设置为全屏和退出全屏的函数如下: ```swift // MARK: - 获取 NSSplitViewController func splitVC() -> NSSplitViewController { return ((NSApp.keyWindow?.contentView?.subviews.first?.subviews.first?.subviews.first as? NSSplitView)?.delegate as? NSSplitViewController)! } // MARK: - 全屏 func fullScreen(isEnter: Bool)...

使用方法如下: ```swift struct PlayLinkView: View { @Environment(\.openURL) var openURL var aStr: AttributedString { var a = AttributedString("戴铭的博客") a.link = URL(string: "https://ming1016.github.io/") return a } var body: some View { VStack...

*Swift 1.1* * countElements() 改成了 count()。 * @NSApplicationMain 可以在 macOS 上使用。 *Swift 1.2* * 引入 Set 类型。 * if let 可以放到一起,使用逗号分隔。 * 新增 zip() 和 flatMap()。 * 类增加静态方法和静态属性,使用 static 关键字描述。...

结果生成器(Result builders),通过传递序列创建新值,SwiftUI就是使用的结果生成器将多个视图生成一个视图 ```swift @resultBuilder struct RBS { // 基本闭包支持 static func buildBlock(_ components: Int...) -> Int { components.reduce(0) { partialResult, i in partialResult + i } } // 支持条件判断 static...

@dynamicCallable 动态可调用类型。通过实现 dynamicallyCall 方法来定义变参的处理。 ```swift @dynamicCallable struct D { // 带参数说明 func dynamicallyCall(withKeywordArguments args: KeyValuePairs) -> Int { let firstArg = args.first?.value ?? 0 return firstArg * 2 } //...

Result 类型用来处理错误,特别适用异步接口的错误处理。 ```swift extension URLSession { func dataTaskWithResult( with url: URL, handler: @escaping (Result) -> Void ) -> URLSessionDataTask { dataTask(with: url) { data, _, err in if let err...

```swift struct H: Hashable { var p1: String var p2: Int // 提供随机 seed func hash(into hasher: inout Hasher) { hasher.combine(p1) } } let h1 = H(p1: "one", p2: 1)...