Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Swift中的NSTextFieldCell中单击NSButtonCell_Swift_Cocoa - Fatal编程技术网

在Swift中的NSTextFieldCell中单击NSButtonCell

在Swift中的NSTextFieldCell中单击NSButtonCell,swift,cocoa,Swift,Cocoa,我将一个名为MyTextFieldCell的NSTextFieldCell子类化。 我在里面加了一个NSButtonCell。 有人知道如何让NSButtonCell在MytextFieldCell中可点击吗 代码: 当你在牢房里做一个按钮时,我建议你这样做 selectionStyle=.None 在要开始的单元格类的awakeFromNib()内部,以防止当用户试图单击按钮时,单元格认为您正在单击它,就像这样 override func awakeFromNib() { super.


我将一个名为MyTextFieldCell的NSTextFieldCell子类化。 我在里面加了一个NSButtonCell。
有人知道如何让NSButtonCell在MytextFieldCell中可点击吗

代码:


当你在牢房里做一个按钮时,我建议你这样做

selectionStyle=.None

在要开始的单元格类的
awakeFromNib()
内部,以防止当用户试图单击按钮时,单元格认为您正在单击它,就像这样

override func awakeFromNib() {
    super.awakeFromNib()
    selectionStyle = .None
}
在button类中创建按钮的出口。处理按钮操作的最简单方法是在ViewController类中而不是在单元格中创建按钮。可以在单元格内创建它并使用委托与viewController通信,但最简单的方法是在viewController本身中创建@iAction。尽管@IBOutlet必须在Cell的类中,但在那里创建它完全是大声的。然后,如果需要以某种方式更改按钮,请在表视图的
cellforrowatinexpath
中更改它,然后调用

tableView.reloadrowsatindexpath(nsindepath(forRow:theCellRow,instition:theCellSection),带rowAnimation:UITableViewRowAnimation.None)


在您希望看到更改发生的时候,这些更改是以前进行的。我希望这有帮助!;)

当您在单元格中制作按钮时,我建议您这样做

selectionStyle=.None

在要开始的单元格类的
awakeFromNib()
内部,以防止当用户试图单击按钮时,单元格认为您正在单击它,就像这样

override func awakeFromNib() {
    super.awakeFromNib()
    selectionStyle = .None
}
在button类中创建按钮的出口。处理按钮操作的最简单方法是在ViewController类中而不是在单元格中创建按钮。可以在单元格内创建它并使用委托与viewController通信,但最简单的方法是在viewController本身中创建@iAction。尽管@IBOutlet必须在Cell的类中,但在那里创建它完全是大声的。然后,如果需要以某种方式更改按钮,请在表视图的
cellforrowatinexpath
中更改它,然后调用

tableView.reloadrowsatindexpath(nsindepath(forRow:theCellRow,instition:theCellSection),带rowAnimation:UITableViewRowAnimation.None)


在您希望看到更改发生的时候,这些更改是以前进行的。我希望这有帮助!;)

使用基于现代视图的表视图。它使事情变得简单多了。NSButton是否有目标和操作?使用基于现代视图的表视图。它让事情变得简单多了。NSButton会有目标和动作吗?谢谢Sethmr,但它不适用于NSTableView哦,我的错。。。同样的原则仍然适用。让outlets保持在您定义类的本地,并保持与单元格对应的视图控制器中的操作。谢谢Sethmr,但它不适用于NSTableViewoh,我的坏。。。同样的原则仍然适用。使输出保持在定义类的本地,并使视图控制器中的操作与单元格对应。