macOS Swift TextField.stringValue 在我单击其他内容之前不会返回更新的值
macOS Swift TextField.stringValue not returning updated value until I click on something else
如果之前有人问过这个问题,我深表歉意,但我在过去几个小时内无法在网上找到我要找的东西。我仍然是 swift.
的菜鸟
我试图在单击 NSButton 时存储 TextField 的字符串值。如果我点击任意位置,然后点击 NSButton,代码运行完美,但如果我不点击,stringValue 仍然报告之前的值。
@IBOutlet weak var NameText: NSTextField!
@IBOutlet weak var SaveChangesAccountButton: NSButton!
var selectedAccountItemNumber = NSInteger()
@IBAction func SaveAccountChanges(_ sender: Any)
{
let AccountName = NameText.stringValue
AccountingData.instance.book.account[selectedAccountItemNumber].name = AccountName
}
您必须在文本字段上调用 validateEditing()
。
并且请遵守变量和函数名以小写字母开头的命名规则,不要在Swift中使用NSInteger
。
@IBOutlet weak var nameText: NSTextField!
@IBOutlet weak var saveChangesAccountButton: NSButton!
var selectedAccountItemNumber = 0
@IBAction func saveAccountChanges(_ sender: Any)
{
nameText.validateEditing()
let accountName = nameText.stringValue
AccountingData.instance.book.account[selectedAccountItemNumber].name = accountName
}
如果之前有人问过这个问题,我深表歉意,但我在过去几个小时内无法在网上找到我要找的东西。我仍然是 swift.
的菜鸟我试图在单击 NSButton 时存储 TextField 的字符串值。如果我点击任意位置,然后点击 NSButton,代码运行完美,但如果我不点击,stringValue 仍然报告之前的值。
@IBOutlet weak var NameText: NSTextField!
@IBOutlet weak var SaveChangesAccountButton: NSButton!
var selectedAccountItemNumber = NSInteger()
@IBAction func SaveAccountChanges(_ sender: Any)
{
let AccountName = NameText.stringValue
AccountingData.instance.book.account[selectedAccountItemNumber].name = AccountName
}
您必须在文本字段上调用 validateEditing()
。
并且请遵守变量和函数名以小写字母开头的命名规则,不要在Swift中使用NSInteger
。
@IBOutlet weak var nameText: NSTextField!
@IBOutlet weak var saveChangesAccountButton: NSButton!
var selectedAccountItemNumber = 0
@IBAction func saveAccountChanges(_ sender: Any)
{
nameText.validateEditing()
let accountName = nameText.stringValue
AccountingData.instance.book.account[selectedAccountItemNumber].name = accountName
}