小编unk*_*own的帖子

上下文菜单未在 SwiftUI 中更新

我正在尝试设置一个.contextMenu带有切换值的按钮的SwiftUI Bool。上下文菜单的按钮文本应该在Bool切换时发生变化。但上下文菜单不会更新。有没有办法强制更新上下文菜单?

描述问题的示例代码:

import SwiftUI

struct Item: Identifiable {
    let id = UUID()
    let user: String
    var active: Bool
}

struct ContentView: View {
    @State var items: [Item] = [
        Item(user: "Daniel",active: false),
        Item(user: "Jack", active: true),
        Item(user: "John", active: true)
    ]
    
    @State var isOn : Bool = false
    var body: some View {
        List {
            ForEach(items) { item in
                VStack {
                    Text("\(item.user)")
                        
                    HStack {
                        Text("Active ? ")
                        Text(item.active ? "YES": "NO")
                    }
                }.contextMenu{
                    Button(action: …
Run Code Online (Sandbox Code Playgroud)

contextmenu swift swiftui swiftui-contextmenu

12
推荐指数
1
解决办法
2196
查看次数

滚动到 SwiftUI 中的 TextEditor 光标位置

是否可以滚动到TextEditor当前光标位置?

我有 aList作为TextEditor最后一行。我滚动到最后一行,List以确保 位于TextEditor键盘上方。

问题是,由于我将滚动锚设置为.bottom,因此在编辑长文本时,当滚动视图滚动到行的底部时,顶部的文本不可见。

在此输入图像描述

您应该能够使用以下代码重新创建问题。只需输入一些长文本,然后尝试在顶部编辑该文本。


import SwiftUI


struct ContentView: View {

    @State var items: [String] = ["Apples", "Oranges", "Bananas", "Pears", "Mangos", "Grapefruit","Apples", "Oranges", "Bananas", "Pears", "Mangos", "Grapefruit"]

    @State private var newItemText : String = ""


    var body: some View {
        ScrollViewReader { (proxy: ScrollViewProxy) in
                List{
                     ForEach(items, id: \.self) {
                         Text("\($0)")
                     }
                     TextEditor(text: $newItemText)
                        .onChange(of: newItemText) { newValue in
                            proxy.scrollTo("New Item TextField", anchor: .bottom)
                        }.id("New Item TextField") …
Run Code Online (Sandbox Code Playgroud)

swift swiftui swiftui-list swiftui-texteditor

8
推荐指数
1
解决办法
4271
查看次数

检测 TextEditor SwiftUI 的键盘“提交按钮”按下

在 SwiftUI 上,TextField您可以使用修饰符为键盘的返回/提交按钮设置操作.onSubmit()。你如何实现同样的目标TextEditor?(.onSubmit()似乎不起作用。)

swiftui swiftui-texteditor

7
推荐指数
1
解决办法
4025
查看次数

在 Swift 中以编程方式将系统图像设置为 NSImageView

您可以在 UIKit 中设置系统映像(SF Symbol)UIImage(systemName: "pencil")。对于 macOS 应用程序,您可以在 Storyboard 中设置系统映像。但是,我找不到以编程方式为 macOS 设置系统映像的方法。那么这是否可能,或者系统映像仅限于 macOS 应用程序中的情节提要。

imageView.image = NSImage(named: "pencil") //result is no image
Run Code Online (Sandbox Code Playgroud)

macos nsimage swift sf-symbols

6
推荐指数
1
解决办法
2462
查看次数

在 Xcode 12.5 中打开 Xcode 13.0 项目

当我尝试打开 Xcode 项目时,我收到一条错误消息:

无法打开“/Users/.../[].xcodeproj”处的项目,因为它采用未来的 Xcode 项目文件格式。使用兼容版本的 Xcode 调整项目格式,以允许该版本的 Xcode 打开它。

我目前使用的是 Xcode 12.5.1,但没有安装 Xcode 13。有一个类似的问题(Xcode 13 - '/Users/test.xcodeproj' 的项目无法打开,因为它采用未来的 Xcode 项目文件格式),建议更改项目格式以使其与 Xcode 12 兼容,但我可以'不这样做,因为我无法在 Xcode 12 中打开项目文件。

xcode xcode12 xcode13 macos-monterey

5
推荐指数
1
解决办法
5266
查看次数

Cocoa 自定义 NSView 的工具提示 Swift

我正在尝试创建带有粗体文本的工具提示。macOS 上的一些苹果应用程序使用此行为。我该如何实现这一目标?我目前的代码

btn.tooltip = "Open Options"
//tooltip doesn't accept attributed strings.
Run Code Online (Sandbox Code Playgroud)

这是我想要实现的目标的示例(使用此行为的 Xcode 的屏幕截图)。 在此输入图像描述

cocoa tooltip nsattributedstring swift

1
推荐指数
1
解决办法
2159
查看次数