Macos 使用Swift将NSView添加到应答器链的指南
我读过这个文件。看到这样的问题(其中)。看了一下教程。但就我的一生而言,我无法让我的自定义故事板继续工作。我正在使用SO answer中的代码来引入新的视图和它们的控制器 基本上,用户在初始视图中会看到5个按钮,单击任何一个按钮都会导致另一个视图从左侧滑入。所有这些都可以正常工作,任何放置在新视图上的Macos 使用Swift将NSView添加到应答器链的指南,macos,cocoa,swift3,nsstoryboard,Macos,Cocoa,Swift3,Nsstoryboard,我读过这个文件。看到这样的问题(其中)。看了一下教程。但就我的一生而言,我无法让我的自定义故事板继续工作。我正在使用SO answer中的代码来引入新的视图和它们的控制器 基本上,用户在初始视图中会看到5个按钮,单击任何一个按钮都会导致另一个视图从左侧滑入。所有这些都可以正常工作,任何放置在新视图上的nsbutton都会收到单击并执行它们应该执行的操作。但是,文本字段是完全不可访问的:您可以选择其中的任何文本,但不能覆盖 我假设我没有将新的视图/视图控件正确地注入到响应器链中(但是为什么按钮工作
nsbutton
都会收到单击并执行它们应该执行的操作。但是,文本字段是完全不可访问的:您可以选择其中的任何文本,但不能覆盖
我假设我没有将新的视图/视图控件正确地注入到响应器链中(但是为什么按钮工作而文本字段不工作呢?)
明智地使用
self.resignFirstResponder()
及
始终返回true。我将它们放置在新视图的各种初始生命周期函数中,以及动画末尾的实际自定义NSViewControllerPresentationAnimator
中
如果segue是一个预设的工作表、模态、popover或任何东西,那么新视图接收到的所有动作/键入都很好。所以这绝对是我的代码
我知道这不是一个好的形式,但我快发疯了:有人能用Swift提供一个循序渐进的例子吗
[编辑]啊!似乎是因为我在我的应用程序窗口中没有选中“标题栏”,所以它拒绝接收第一响应者。遗憾的是,我非常喜欢没有标题的干净窗口……在我的例子中,我希望应用程序窗口没有标题栏。如果在情节提要窗口的IB属性部分取消选中标题栏选项,则需要将NSWindow子类并覆盖
canBecomeMain
和canBecomeKey
:
import Cocoa
class BTVWindow: NSWindow {
override var canBecomeKey: Bool{
get {
return true
}
}
override var canBecomeMain: Bool{
get {
return true
}
}
}
文本字段是否可编辑?如果你能选择文本,它们会响应鼠标事件,并且在响应器链中。这就是奇怪的一点:不,它们不是。可选择但不可编辑。该视图的背景颜色也较浅,在预设的顺序转换后完全可操作。
import Cocoa
class BTVWindow: NSWindow {
override var canBecomeKey: Bool{
get {
return true
}
}
override var canBecomeMain: Bool{
get {
return true
}
}
}