从 nstableview 中的文本字段获取字符串值
get string value from textfield in nstableview
我有一个带有自定义单元格的 nstableview。
(4 行,每行一个文本字段)
我有一个 nstableview 控制器和一个自定义单元 class
进入 nstableview class 我把这个委托方法:
func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {
print("Edit")
return true
}
当我在我的 nstableview 中更改 nstextfield 值时,我得到一个 "Edit" 打印。但现在我必须知道,编辑文本字段的新值是多少。
我怎样才能得到这个?
swift3、osx
您可以使用:
func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {
print("new text is \(fieldEditor.string!)
return true
}
您将在该委托方法的 fieldEditor
参数中找到新文本。
现在你的 NSTableView 中有这个委托方法 class。我建议将其移动到您的自定义单元格 class 并重置您的委托以指向自定义单元格。
然后,如果您将四个文本字段中的每一个分配给 @IBOutlet
属性,您可以很容易地看出它属于哪个字段。即:
class MyCustomTableViewCell : NSTableViewCell, NSControlTextEditingDelegate {
@IBOutlet weak var nameField : NSTextField!
@IBOutlet weak var categoryField : NSTextField!
@IBOutlet weak var anotherTextField : NSTextField!
@IBOutlet weak var andYetAnotherTextField : NSTextField!
func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {
if control == self.nameField {
print("new nameField text is is \(fieldEditor.string!)
}
if control == self.categoryField {
print("new categoryField text is is \(fieldEditor.string!)
}
if control == self.anotherTextField {
print("new anotherTextField text is is \(fieldEditor.string!)
}
if control == self.andYetAnotherTextField {
print("new andYetAnotherTextField text is is \(fieldEditor.string!)
}
return true
}
我认为这也适用于switch
语句(例如switch(control)
和case self.nameField
)。
我有一个带有自定义单元格的 nstableview。 (4 行,每行一个文本字段)
我有一个 nstableview 控制器和一个自定义单元 class 进入 nstableview class 我把这个委托方法:
func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {
print("Edit")
return true
}
当我在我的 nstableview 中更改 nstextfield 值时,我得到一个 "Edit" 打印。但现在我必须知道,编辑文本字段的新值是多少。
我怎样才能得到这个?
swift3、osx
您可以使用:
func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {
print("new text is \(fieldEditor.string!)
return true
}
您将在该委托方法的 fieldEditor
参数中找到新文本。
现在你的 NSTableView 中有这个委托方法 class。我建议将其移动到您的自定义单元格 class 并重置您的委托以指向自定义单元格。
然后,如果您将四个文本字段中的每一个分配给 @IBOutlet
属性,您可以很容易地看出它属于哪个字段。即:
class MyCustomTableViewCell : NSTableViewCell, NSControlTextEditingDelegate {
@IBOutlet weak var nameField : NSTextField!
@IBOutlet weak var categoryField : NSTextField!
@IBOutlet weak var anotherTextField : NSTextField!
@IBOutlet weak var andYetAnotherTextField : NSTextField!
func control(_ control: NSControl, textShouldEndEditing fieldEditor: NSText) -> Bool {
if control == self.nameField {
print("new nameField text is is \(fieldEditor.string!)
}
if control == self.categoryField {
print("new categoryField text is is \(fieldEditor.string!)
}
if control == self.anotherTextField {
print("new anotherTextField text is is \(fieldEditor.string!)
}
if control == self.andYetAnotherTextField {
print("new andYetAnotherTextField text is is \(fieldEditor.string!)
}
return true
}
我认为这也适用于switch
语句(例如switch(control)
和case self.nameField
)。