4
我試圖理清這些事件是如何工作的。在上的iTunes U斯坦福當然視頻4,艾倫Cannistraro說,有你如何使用帶參數的事件處理程序?
「3種不同的操作方法選擇器類型 的口味 - (無效)actionMethod; - (無效)actionMethod:(ID)發送者; - (void)actionMethod:(id)sender withEvent:(UIEvent *)event;「
我想我會嘗試一個簡單的添加程序 - 你輸入2個數字,當你鍵入總和獲得地方在第三個UITextField。我有一個沒有參數簽名的方法,它工作正常。當我使用sender參數將其更改爲第二個時,代碼將停止調用該方法。
這工作:
-(void) setSum {
float a1 = addend1.text.floatValue;
float a2 = addend2.text.floatValue;
float thesum = a1 + a2;
NSString * ssum = [NSString stringWithFormat:@"%g", thesum];
sum.text = ssum;
}
-(void)awakeFromNib {
SEL setSumMethod = @selector(setSum);
[addend1 addTarget: self action: setSumMethod forControlEvents: UIControlEventEditingChanged];
[addend2 addTarget: self action: setSumMethod forControlEvents: UIControlEventEditingChanged];
}// awakeFromNib
此運行,但setSum不會被調用:
-(void) setSum:(id) sender {
float a1 = addend1.text.floatValue;
float a2 = addend2.text.floatValue;
float thesum = a1 + a2;
NSString * ssum = [NSString stringWithFormat:@"%g", thesum];
sum.text = ssum;
}
-(void)awakeFromNib {
SEL setSumMethod = @selector(setSum:);
[addend1 addTarget: self action: setSumMethod forControlEvents: UIControlEventEditingChanged];
[addend2 addTarget: self action: setSumMethod forControlEvents: UIControlEventEditingChanged];
}// awakeFromNib
所以,問題是不要當其他事件方法類型的工作?只有第一個似乎適用。
TIA
馬克