小编Nic*_*lli的帖子

SwiftUI - 如何在视图加载时自动激活 TextField?

我的视图中有一个 TextField,看起来像这样:

@FocusState private var keyboardFocused: Bool

VStack {
  TextField("Name your item...", text: $itemName)
    .focused($keyboardFocused)
  
  ...
}
Run Code Online (Sandbox Code Playgroud)

现在,这一切都嵌入到按下按钮时加载的视图中,如下所示:

Button(action: someAction, label: { ... })
.fullScreenCover(isPresented: $viewIsPresented) {
  ViewWithTextField(...)
}
Run Code Online (Sandbox Code Playgroud)

我想做到这一点,以便在加载此视图时,自动激活 TextField/(聚焦?)并弹出键盘。我怎样才能做到这一点?

keyboard textfield swiftui

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

如何在 SwiftUI 中使用 onMove 拖动(和长按)时删除列表项的背景?

我在 SwiftUI 中有一个列表,如下所示:

@State var items = ["item0", "item1", "item2"]
List {
    ForEach(items, id: \.self) { item in
        ZStack {
            Rectangle()
                .frame(width: 150, height: 65)
            Text(item)
        }                            
        .onMove { from, to in
            items.move(fromOffsets: from, toOffset: to)
        }
    }
    .listRowSeparator(.hidden)
    .listRowBackground(Color.clear)      
}
.listStyle(.plain)
.scrollContentBackground(.hidden)
Run Code Online (Sandbox Code Playgroud)

这个想法是在 ForEach 中显示项目,就好像它们只是“浮动”在屏幕上,而不是在列表中。

在此输入图像描述

但是,当我拖动列表项(以在列表中重新排序;从 .onMove() 修饰符)时,会出现白色背景:

在此输入图像描述

我想删除这个背景,所以看起来我只是移动列表项(只是圆角矩形,没有背景)。我怎样才能实现这个目标?

编辑:我添加了.onDrag {} \@ViewBuilder preview: {}在主动拖动时删除背景的功能,但当我们在开始拖动之前长时间按住该项目时,它仍然会出现。

list ios swift swiftui

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

SwiftUI - 禁用滑动时按钮突出显示

我正在处理 SwiftUI 中的一个简单按钮,布局如下:

TabView {
  ForEach(...) { ...
    Button {...}
      label {...}
  }
}
Run Code Online (Sandbox Code Playgroud)

当我点击(但不释放)按钮时,它会默认突出显示该按钮;这可以。但是,如果我将这些按钮排列在分页选项卡视图中,则通过滑动来导航页面会突出显示这些按钮,这是我不想要的。

有没有办法禁用这个突出显示?最好,我想在点击按钮时保留突出显示,但在滑动时不保留突出显示,但如果我必须完全禁用它也没关系。

button tabview swift swiftui

6
推荐指数
0
解决办法
159
查看次数

处理 SwiftUI 中的嵌套 NavigationStack?

我环顾四周,但没有看到任何这方面的信息。如果我想在 SwiftUI 中拥有多个导航堆栈,并拥有多个添加到不同导航堆栈的导航链接,我该怎么做?在我的用例中,我使用选项卡视图,所以我会是这样的:

NavigationStack(path: $globalNavigationStack) {
  TabView {
    PrimaryView()
    SecondaryView()
  }
}
Run Code Online (Sandbox Code Playgroud)

那么也许在 PrimaryView 中:

struct PrimaryView: View {
  var body: some View {
    NavigationStack(path: $localNavigationStack) {
       NavigationLink(value: SomeType.self) {
         Button("This should add to local stack")
       }
       .navigationDestination(for: SomeType.val) { someType in
          ViewOnLocalStack() 
       }

       NavigationLink(value: SomeType.self) {
         Button("This should add to global stack")
       }
       .navigationDestination(for: SomeType.val) { someType in
          ViewOnGlobalStack() 
       }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但第二个NavigationLink将添加到本地堆栈。假设我有权访问全局路径,如何使第二个路径添加到全局路径?我尝试的是这样的:

NavigationStack(path: $globalNavigationStack) {
  TabView {
    PrimaryView()
    SecondaryView()
  }
}
.navigationDestination(for: SomeType.val) { someType …
Run Code Online (Sandbox Code Playgroud)

swiftui swiftui-navigationstack

6
推荐指数
0
解决办法
1919
查看次数

SwiftUI - 如何使导航栏标题可编辑(不改变任何其他行为)?

我真的很喜欢 SwiftUI 中导航栏标题的外观,而且我喜欢它出现在安全区域的正下方,但当你向下滚动时出现在工具栏的主要部分。我想知道如何完全复制这种外观和行为,但使其可由用户编辑(最有可能通过文本字段?)

我试过了

.toolbar {
  ToolbarItem(placement: .principal) {
    TextField("Navigation Title", text: $mainTitle)
  }
}
Run Code Online (Sandbox Code Playgroud)

但这只是将标题始终放置在工具栏中,而不是仅在您稍微滚动时才放置。

有任何想法吗?

textfield navigationbar swiftui

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

如何绑定环境变量ios17

随着 iOS 17 引入的新@Observable宏,我们现在可以通过以下方式使用环境对象

@Environment(MyType.self) var myTypeObj
Run Code Online (Sandbox Code Playgroud)

现在,如果myTypeObj有一些属性,请调用它myProperty,我想使用$语法将其作为绑定传递到某处,Swift 抱怨它找不到该变量。例如,

Picker("My Picker", selection: $myTypeObj.myProperty) { // we get an error on this line
  ForEach(1 ... 50, id: \.self) { num in
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

我们收到一条错误消息Cannot find $myTypeObj in scope:这是 Swift 的错误还是我做错了什么?

observable swift swiftui ios17

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

SwiftUI - 标签未向左对齐

我在 SwiftUI 中有一个非常基本的视图,其中有一个标签,我正在努力让它向左对齐。这就是它的本质:

VStack(alignment: .leading) {
  Label("Hi", ...)
}
.frame(maxWidth: .infinity)
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,标签都会保留在视图的中心。我怎样才能解决这个问题?

label swiftui vstack

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

安装 Magento 时出错 - 无法验证与 Elasticsearch 的连接

我是按照本教程https://www.javatpoint.com/how-to-install-magento-2-using-composer第一次安装 Magento 2 。XAMPP 已安装(Apache 和 MySQL 正在运行),数据库已在 PHPMyAdmin 上设置,但是当我尝试运行php bin/magento setup:install(教程中的步骤 23)时,出现错误:Could not validate a connection to Elasticsearch. No alive nodes found in your cluster

我怎样才能解决这个问题?

php xampp installation magento magento2

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