- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么调用 moveLeft() 和 moveRight() 方法,我已经关闭了窗口 Controller 的第一响应者能力?我没有在其他地方添加任何代码,所以我显然在某处遗漏了一些东西......
最后我确实想接受事件,但如果我在这里“启用”它们并处理覆盖 keyEvent(),它会导致它被处理两次并做出两次选择。
import Cocoa
enum UserChoice {
case Left, Right
}
class MainWindowController: NSWindowController {
override func windowDidLoad() {
super.windowDidLoad()
}
override var windowNibName: String? {
return "MainWindowController"
}
override var acceptsFirstResponder: Bool {
return false
}
override func moveLeft(sender: AnyObject?) {
chooseImage(UserChoice.Left)
}
override func moveRight(sender: AnyObject?) {
chooseImage(UserChoice.Right)
}
func chooseImage(choice: UserChoice) {
print("choice made")
}
}
我唯一拥有的其他文件是 AppDelegate.swift:
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
var mainWindowController: MainWindowController!
func applicationDidFinishLaunching(notification: NSNotification) {
mainWindowController = MainWindowController()
mainWindowController.showWindow(self)
}
}
也欢迎对我的代码提出任何意见,我是 Swift/Cocoa 的新手,所以...
最佳答案
当您的 Controller 拒绝成为第一响应者时,它仍然是响应者,只是不是第一响应者。另一个响应者(例如窗口或其中的 View )可以选择将责任推回响应者链。
如果您不想处理它们,我不清楚为什么要实现 moveLeft
和 moveRight
。
关于macos - NSResponder 在 acceptsFirstResponder 为 false 时接受事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32724901/
我正在使用 NSTextFields 并启用/禁用选择和编辑,并且我在示例应用程序中遇到了一些奇怪的行为。我有一个名为 MyTextField 的 NSTextField 子类;该子类所做的唯一事情就
为什么调用 moveLeft() 和 moveRight() 方法,我已经关闭了窗口 Controller 的第一响应者能力?我没有在其他地方添加任何代码,所以我显然在某处遗漏了一些东西......
有人可以向我解释一下如何在 Swift 和 xcode 6 中的 NSViewController 上设置 acceptsFirstResponder 吗? 该程序不允许对该函数进行任何覆盖,并说它不
我是一名优秀的程序员,十分优秀!