swift - 禁用所有元素的表格 View

标签 swift macos cocoa nstableview

我在 macOS 上使用 swift 4,并且有一个 NSButton,它应该禁用我的 NSTableView 的所有元素(文本字段、按钮等)

在按钮的 IBAction 中,我有以下代码行:

myTableView.deselectAll(nil)
myTableView.isEnabled = false

这很好用,但我发现了一个小“bug”。 如果我选择表格 View 的文本字段(编辑模式打开) 然后按我的按钮,表格 View 将被禁用,所有选定的行将取消选择,但我可以毫无问题地编辑文本字段的内容,因为“编辑模式”仍然处于打开状态。

我必须手动禁用表格 View 中的所有文本字段还是有一个优雅的技巧?

最佳答案

你可以使用

让 NSTextField 失去响应者
view.window?.makeFirstResponder(view.window)

这应该可以解决问题。

关于swift - 禁用所有元素的表格 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46441316/

相关文章:

arrays - 对数组的元素进行排序 (Swift)

python - 当主进程终止时,Celery 启动的进程不会停止

python - subprocess.Popen ("echo $HOME"... 和 subprocess.Popen( ["echo", "$HOME"] 有什么区别

cocoa - 如何设置 NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints?

ios - SpriteKit 中的更新功能与 iPhone X 不同

ios - UIKit 以编程方式 : Help on different approaches when writing UI Code

iOS5 : Determine if core data method is running in an asynch dispatch queue?

objective-c - cocoa 风格 : using polymorphism in collections

uitableview - Swift 赋值左侧使用的可选链接

macos - 如何将地址字符串转换为地址字典