2015-04-08 69 views
0

我想知道當按下按鈕時的按鈕狀態,以及當用戶從按鈕中移除手指時,就像在JavaScript中有事件OnKeyDown並顯示警報onKeyup在iOS中顯示另一個警報我尋找一些像JavaScript的,我發現touchupInside(onkeydown事件)touchupOutside(的onkeyup),但我不能記錄任何事情時,按鍵時(平均用戶刪除他/她從按鈕fingure)這可能在IOS我找一些東西像ios中的按鈕觸摸狀態

UIButton *button = (UIButton *)sender; 
button.selected = ![button isSelected]; // Important line 
if (button.selected) 
{ 
    NSLog(@"Selected"); 
    NSLog(@"%i",button.tag); 
} 
else 
{ 
    NSLog(@"Un Selected"); 
    NSLog(@"%i",button.tag); 

} 
+0

TouchupInside/touchUpOutside按鈕時,手指擡起實際上是調用。 –

回答

0

我認爲你需要的是不同的控制事件OnKeyDown事件只要按鈕被點擊這個你需要UIControlEventTouchDown事件和onKeyup你需要UIControlEventTouchUpInside由使用按鍵這兩個事件u能得到ü想要的東西,例如

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]; 
    [button setFrame:CGRectMake(0, 100, 150, 100)]; 
    [button setTitle:@"Touch" forState:UIControlStateNormal]; 
    [button addTarget:self action:@selector(onKeyupEvent:) forControlEvents:UIControlEventTouchUpInside]; 
    [button addTarget:self action:@selector(onKeyDownEvent:) forControlEvents:UIControlEventTouchDown]; 
    [self.view addSubview:button]; 
} 

- (void)onKeyupEvent:(id)sender 
{ 
    NSLog(@"key up event"); 
} 

- (void)onKeyDownEvent:(id)sender 
{ 
    NSLog(@"key down event"); 
} 
+0

非常感謝它對我有用,我也發現了其他解決方案 – user3694372

+0

我喜歡這個我不知道女巫是最好的[myButton addTarget:self action:@selector(touchEnded:withEvent :) forControlEvents:UIControlEventTouchUpInside]; - (void)touchEnded:(UIButton *)addOnButton withEvent:event { NSLog(@「button Released .....」); }其工作正常 – user3694372

+0

你決定,如果你想要發生不同的事件,然後使用我的例子,或者使用你的 –

0

有活動,你可以利用的數量,你就能夠找到通過谷歌搜索UIControl Class Reference整個列表。請在constant部分查看control events

此外,您還可以通過做這樣的事情引發這些事件:

[button addTarget:self action:@selector(ButtonEvent:) forControlEvents:UIControlEventTouchUpInside]; 

,然後添加下面的方法:

-(IBAction)ButtonEvent:(id)sender { 
    // do something... 
}