0
在此SO question中,用戶feihu
建議採用不同操作的方法作爲TouchUpInside
事件的目標。Swift中的UIButton動作消息的正確功能簽名
下面是相關的部分:
[btn addTarget:self action:@selector(btnTouchUp:withEvent:) forControlEvents:UIControlEventTouchUpInside];
(void)btnTouchUp:(UIButton *)sender withEvent:(UIEvent *)event {
...
}
這個代碼轉換爲斯威夫特已經鬱悶了。
我們嘗試:
button.addTarget(self, action: "buttonTouchUp:", forControlEvents: .TouchUpInside)
func buttonTouchUp(sender: AnyObject, event: UIEvent) {
...
}
和
比標準動作消息(具有sender: UIButton!
作爲唯一的參數)其它
button.addTarget(self, action: "buttonTouchUp:", forControlEvents: .TouchUpInside)
func buttonTouchUp(sender: UIButton!, event: UIEvent) {
...
}
任何生成異常說一個無法識別的選擇被髮送。
在Apple操作消息上搜索其他簽名的Apple文檔不會產生任何結果。我們檢查了UIButton
和UIControl
類。
我們谷歌搜索UIButton action message
,UIControl selector action
,UIButton events
,UIButton action function signature
,和各種變化,但沒有。
我們該如何轉換他的Obj-C代碼?或者我們可以在哪裏找到可用於處理UIButton
事件的所有可能操作?
呃,非常感謝。新的Swift所以這樣的東西是令人發瘋的。爲了將來的參考,如果你像我們一樣並試圖找到答案,你會使用谷歌搜索嗎? – Crashalot
「Swift IBAction方法簽名」可能嗎? –
謝謝!我們嘗試了類似的東西('UIButton動作函數簽名'),但找不到任何東西。你比Google好。 :) – Crashalot