问题标签 [editmode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 在 TableViews 的上下文中,swift 中的“编辑模式”是什么?
我一直在快速搞乱EditModeTableViews
,正在寻找一些关于它的澄清。进入 EditMode 究竟有什么作用?我知道它允许您删除和移动 a 中的元素,TableView
但我也注意到 a 的其他功能在设置为 trueTableView
时受到限制。isEditing
例如,如果您点击一个单元格,该didSelectRow
功能不会触发。这是激活 EditMode 的预期行为吗?
list - 如何摆脱由 EditMode 触发的 SwiftTUI List 奇怪的动画和间距?
如果你在 Xcode 12.5 上创建一个新项目并使用 SwiftUI 与 a andList
组合foreach
,.onmove
你会注意到 2 件烦人的事情:
1/ 即使未设置 ondelete,并且即使您明确指定.deleteDisabled(true)
,在 EditMode 时,列表行的左侧也会出现一个空格。有可能摆脱它吗?
2/ 移动图标的入口会在每个列表行上创建某种动画故障。分隔线强调了这一点。为什么触发EditMode时分隔符后面有空格?似乎在过去,分隔线宽度在此过渡期间保持不变。
如果你问我,之前的行为让我认为移动按钮嵌入在 ZStack 中,同时包装了移动按钮和列表。而现在它看起来像是在 HStack 中。无论如何,这些都不能解释即使它也被推动也不会出现在行左侧的故障。
我感到很困惑。
我很惊讶我无法通过 Google 找到有关该问题的任何信息。是我做错了什么吗?
问题的视频:Glitch,这里有一个简单的代码供您自己尝试。
感谢您的时间。
swift - 如何在 SwiftUI 中检查 EditButton/EditMode 状态
我有以下测试代码。但是当点击编辑按钮时,文本不会改变。我找不到任何相关信息。如何检查/控制 editButton/editMode 状态变化?
excel - 用编辑模式替换输入模式
我发现 excel 的“输入模式” (如果我没记错的话,导航到单元格后键入文本时 excel 进入的模式)非常烦人,如果它不存在并且我会更喜欢 excel 会去自动切换到“编辑模式” (按 F2 时您所处的模式)。我想我可以为要编辑的每个单元格按 F2,但这很痛苦。
我找不到那个选项,所以我想没有简单的解决方案(真的很遗憾)。但是有没有办法做到这一点?当我们进入“进入模式”并自动切换到编辑模式时触发的一些 VB 脚本,也许?
asp.net - 使用 SQL 数据库在 Gridview 编辑模式下级联下拉列表
我尝试在 GridView 中以级联模式使用四个下拉列表进行数据编辑。我已经在三个列表中成功实现了级联功能,但第四个列表不起作用。我的 aspx 页面和 VB 代码是
下拉列表的 SQL 数据如下:
第一个下拉列表 - 'ClassificationDDL' SQL 表
第二个下拉列表 - 'ShedDDL' SQL 表
第三个下拉列表 - 'LocoTypeDDL' SQL 表
第 4 个下拉列表 - 'EquipmentDDL' SQL 表
选择命令(存储过程“TESTINNER”)是
更新命令(存储过程)“EnRRlyupdate”是
第二个下拉列表(ddlbase)和第三个下拉列表(ddlLocoType)基于第一个下拉列表(ddlclassification)中的选定值。第 4 个下拉列表 (ddlEquipment) 基于第 3 个下拉列表中的选定值。第 1、第 2 和第 3 下拉菜单工作正常,但第 4 下拉菜单不起作用(表示值未根据第 3 下拉列表中选择的值显示。请帮助使该项目可行。
ios - SwiftUI 使 ForEach List 行可在 EditMode 中正确单击以进行编辑
描述
我有以下代码:
基本上,它显示先前由用户输入填充的类对象的动态列表。我有一个“addToList()”函数,它允许用户添加一些元素(比如说姓名、电子邮件等),一旦用户确认它将元素添加到这个列表中。然后我有一个视图,它通过ForEach显示列表,然后为每个元素创建一个NavigationLink,如上面的代码示例所示。
一旦点击了这个列表的一个元素,用户应该被正确地重定向到一个目标视图,正如NavigationLink所暗示的那样。所有这一切都很好。
我想要的是
这是我面临一个问题的地方:我希望用户能够编辑此列表中一行的内容,而不必删除该行并重新添加另一行。
我决定使用 SwiftUI 的EditMode()功能。所以这就是我想出的:
当我单击“编辑”按钮时,会正确触发EditMode 。但我注意到列表行在编辑模式下不可点击,这很好,因为我不希望它在编辑模式下跟随NavigationLink 。
虽然我想要的是将用户重定向到允许编辑点击行的视图,或者更好的是,将编辑表呈现给用户。
我试过的
由于我无法在编辑模式下点击该行,因此我尝试了几种技巧,但都没有按照我的意愿得出结论。这是我的尝试。
.simultaneousGesture
我尝试将修改后的.simultaneousGesture添加到我的NavigationLink并切换@State变量以显示版本表。
这根本行不通。似乎这个.simultaneousGesture以某种方式破坏了 NavigationLink,点击成功就像五次中的一次。
即使在编辑模式上添加条件也不起作用,例如:
在非版本模式下,NavigationLink 仍然存在漏洞。但我注意到,一旦进入编辑模式,它就会像我想要的那样做。
View 上的修饰符条件扩展
在上一次失败之后,我的第一个想法是我需要仅在编辑模式下触发点击手势,因此在非编辑模式下,视图甚至不知道它有点击手势。
我决定向View 结构添加一个扩展,以便为修饰符定义条件(我在 Stackoverflow 的某处找到了此代码示例):
然后在我的主代码中,而不是之前尝试过的 .simultaneousGesture 修饰符,我将其添加到NavigationLink:
它有效,一旦用户在编辑模式下点击一行,我就能够显示此版本视图,并且正常的非编辑模式仍然有效,因为它正确触发了 NavigationLink。
剩下的问题
但是有些事情让我感到困扰,它感觉不像是自然或原生的行为。一旦被点击,该行没有显示任何反馈,就像它在跟随NavigationLink时在非编辑模式下显示的那样:即使在很短的时间内它也不会突出显示。
点击手势修改器只是执行我所询问的代码,没有动画、反馈或任何东西。
我希望用户知道并查看点击了哪一行,并且我希望它像点击 NavigationLink 时一样突出显示:只需让它看起来就像该行实际上是 "点击"。我希望这是有道理的。
我还希望在用户点击整行时触发代码,而不仅仅是文本可见的部分。目前,点击该行的空白字段不会执行任何操作。它必须有文字。
一个更好的解决方案是阻止我对视图结构应用这样的条件修饰符和扩展,因为如果可能的话,我肯定更喜欢更自然和更好的方法。
我是 Swift 的新手,所以也许有更简单或更好的解决方案,我愿意遵循最佳实践。
在这种情况下,我怎么能设法完成我想要的?
谢谢您的帮助。
附加信息
我目前正在使用 List 上的.onDelete和.onMove实现以及 SwiftUI 版本模式,我想继续使用它们。
我正在使用 Swift 语言和 SwiftUI 框架为最低iOS 14开发应用程序。
如果您需要更多代码示例或更好的解释,请随时提出,我将编辑我的问题。
最小的工作示例
Yrb 问道。
winforms - DataGridView EditMode - 强制单元格编辑 - 仅设置 CurrentCell 和焦点不起作用
在我的(未绑定的)DataGridView 中,有些单元格是可编辑的,有些则不是。当我点击一个可编辑的单元格时,焦点就在那里,我可以写任何东西。然后,如果我按 TAB 键,焦点将转到下一个单元格。但如果输入的值无效,我可以检查事件 Grid_CellValidating 中的值并使用e.Cancel = True取消更改。如果我这样做,焦点将停留在同一个单元格中等待有效值,而不是更改当前单元格。
直到这里一切都按预期工作。
我现在需要的是,从一个新的模式窗口中,我可以选择一个值,将此值设置为父窗体中网格的一个单元格,然后关闭模式窗口。
这可行,但我不想只是将值设置为单元格。我还想将单元格设置为“编辑模式”。我的意思是“编辑模式”表示选择单元格内容的状态,如果您尝试更改值,则会触发 Grid_CellValidating 事件,如果该值无效,则 Grid_CellValidating 事件中的逻辑可以检查它以确定它是否有效或不...
我没有成功。这是我试图用来使其工作的代码。
但这绝对行不通。
事实上,重点甚至不在 Grid 上。我可以在单元格中看到值 1,但焦点不存在。例如,如果我按下 TAB 键,我可以看到焦点在另一个控件上,而不是在 Grid 中。
我期望的是:如果值 1 无效,则 CellValidating 事件会触发并完成工作......
你知道我应该怎么做才能得到我需要的行为吗?
ios - SwiftUI 在 iOS 15 上使用 editMode 的 onDelete 修饰符和自定义 Swipe Actions
初始描述
我目前有一个动态列表,我正在使用 SwiftUI 内置editMode
功能和内置功能,EditButton()
以便让用户从列表中删除项目。
对于删除部分,我正在使用onDelete
添加尾随红色删除滑动手势的修饰符,就像你现在一样。
这是一个例子:
目标
现在我还想使用 iOS 15.swipeActions
修改器,它允许添加我们自己的自定义前导或尾随滑动手势。
我希望用户也能够通过向右滑动来编辑列表元素,所以我在我的行中添加了一个领先的滑动动作:
按钮操作显然会包含一个允许编辑的代码。
问题
使用.swipeActions
修饰符会破坏修饰符的正常行为,editMode
尤其是.onDelete
修饰符。实际上,使用此设置,我无法再向左滑动以删除该行。
那么问题来了:如何在列表中使用 SwiftUIeditMode
的.onDelete
修饰符以及我自己的自定义leading
滑动操作?
最小的可重现示例
Xcode 游乐场,适用于 iOS 15。
您可以测试以下内容:如果您评论或删除此部分:
然后.onDelete
修改器再次起作用。将其重新打开会破坏该.onDelete
功能。
附加信息
因为我使用了修饰符,所以我正在为iOS 15构建这个应用程序。.swipeActions
我愿意接受任何可以实现我的目标的解决方案,即让用户向左滑动以删除行并向右滑动以触发任何版本代码。即使这意味着使用修饰符的另一种方式,或者SwiftUI.swipeActions
的修饰符的另一种方式,或者两者兼而有之。.onDelete
editMode
因为这个修改器,我不得不为 iOS 15 构建应用程序.swipeActions
,所以如果我可以为较低的 iOS 版本构建应用程序,那就更好了。
如果您需要任何其他信息,请立即告诉我。谢谢你。