gpt4 book ai didi

swift - OS X 中的首选项菜单与 Swift

转载 作者:行者123 更新时间:2023-11-30 13:49:20 24 4
gpt4 key购买 nike

我在尝试为我的应用程序设置首选项菜单时遇到了一些问题。我目前正在使用 Swift 和 Xcode 7。

我有一个从主菜单打开的“首选项”窗口。然而,一旦开放就是我的问题所在。我有 2 个按钮,一个用于重置用户输入,另一个用于保存信息。

我已设置重置按钮以使文本输入成为默认值。

我的下一个目标是让保存按钮使用文本字段中输入的任何文本设置变量,然后关闭“首选项”窗口。然后,在理想的情况下,我希望能够重新打开首选项以确保它们已保存。

这可能吗?

目前,如果我单击“保存”按钮,我的程序会挂起,或者如果单击角落中的红色 X,“首选项”窗口将不会重新打开。

这是我当前的首选项窗口代码,甚至不确定其中哪些是不必要的:

import Cocoa
protocol PreferencesWindowDelegate {
func preferencesDidUpdate()
}
class PreferencesWindow: NSWindowController, NSWindowDelegate {
@IBAction func ResetPref(sender: NSButton) {
UserName.stringValue = "Name"
UserEmail.stringValue = "Email"
ManEmail.stringValue = "Man. Email"
SSEmail.stringValue = "SS Email"
}
@IBOutlet var SSEmail: NSTextField!
@IBOutlet var ManEmail: NSTextField!
@IBOutlet var UserEmail: NSTextField!
@IBOutlet var UserName: NSTextField!
@IBAction func SavePref(sender: NSButton) {
}
override var windowNibName : String! {
return "PreferencesWindow"
}
override func controlTextDidBeginEditing(_: NSNotification){
func controlTextDidChange(obj: NSNotification){
}
func windowDidLoad() {
super.windowDidLoad()
self.window?.center()
self.window?.makeKeyAndOrderFront(nil);
NSApp.activateIgnoringOtherApps(true);
}
var delegate: PreferencesWindowDelegate?
func controlTextDidEndEditing(obj: NSNotification){}
func windowWillClose(notification: NSNotification) {
delegate?.preferencesDidUpdate()
}
}
}

感谢任何指导,因为这是我第一次使用 Swift 工作!

最佳答案

你的preferencesDidUpdate()函数定义了吗?

您通常使用 NSUserDefaults 来保存首选项,这会将首选项保存到 .plist 文件中。这就是 cocoa 的方式。要保存 NSUSerDefaults,您只需这样做

let defaults = NSUserDefaults.standardUserDefaults()

defaults.setObject(myValue, forKey: myKey)

关于swift - OS X 中的首选项菜单与 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34499958/

24 4 0