我已将NSMenuItem的视图设置为自定义视图,其中包含文本字段。当我运行程序时,一切都按预期工作。 NSTextField是NSStatusItem的一部分并接受焦点,我可以在其中键入内容。
关闭菜单并转到另一个窗口后,当我单击菜单并尝试将焦点恢复到NSTextField时,它将变为只读。
代码:
import Cocoa
import CoreLocation
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate, NSTextFieldDelegate {
@IBOutlet weak var window: NSWindow!
var statusItem: NSStatusItem
@IBOutlet weak var statusMenu: NSMenu!
@IBOutlet weak var firstMenuItem: NSMenuItem!
@IBOutlet weak var textField: NSTextField!
override func awakeFromNib() {
statusItem.menu = statusMenu
}
override init() {
statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(NSVariableStatusItemLength)
super.init()
}
func applicationDidFinishLaunching(aNotification: NSNotification) {
if let button = statusItem.button {
button.image = NSImage(named:"StatusBarButtonImage")
}
}
func applicationWillTerminate(aNotification: NSNotification) {
// Insert code here to tear down your application
}
}
有没有办法将焦点带回NSTextField?
我尝试过firstFirstResponder,canBecomeKeyView但他们似乎并没有在这种情况下工作。