0
我對macOS編程相當陌生,想爲NSToolbarItem實現一個自定義類。每次按下該項目時,我想要更改該類的屬性。下面是一個示例代碼:NSToolbarItem沒有觸發的動作
class CustomToolbarButton: NSToolbarItem
{
override init(itemIdentifier: String)
{
super.init(itemIdentifier: itemIdentifier)
super.target = self
super.action = #selector(reactToPress)
}
func reactToPress(sender: NSToolbarItem)
{
toggled_property = !toggled_property
print("Item pressed")
}
private(set) var toggled_property = true;
}
此類插入到故事板的工具欄中。我已經確保將身份檢查器中的類說明符更改爲CustomToolbarButton。但是,該操作似乎從未觸發,因爲「按下的項目」從未出現在控制檯輸出中。
我也試着申報「reactToPress」功能在以下幾個方面:
func reactToPress()
@objc func reactToPress()
@objc func reactToPress(sender: NSToolbarItem)
,但仍然沒有成功。
Thx的建議。很遺憾沒有結果。我不知道它是否重要,但我使用了Swift 4 – KO70
我更新了答案。但是Swift 4很可能是'init(itemIdentifier'方法不能用'String'參數。 – vadian
我在init方法中添加了一個控制檯輸出,並且它被觸發了,但是即使添加了@objc,action函數 – KO70