嗨我有一个按钮我想按住这个按钮来写东西,但我不知道我怎么能识别按钮,你能帮助我吗?谢谢
答案 0 :(得分:6)
触发TouchDownInside事件,启动一个NStimer。 触发TouchUpInside事件,取消定时器。 如果用户按住按钮,则让定时器调用您的方法:定时器延迟将是识别保持所需的时间。
答案 1 :(得分:5)
您也可以使用UILongPressGestureRecognizer。
在您的初始化方法(例如viewDidLoad
)中,创建一个手势识别器并将其附加到您的按钮:
UILongPressGestureRecognizer *gesture = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(myButtonLongPressed:)];
// you can control how many seconds before the gesture is recognized
gesture.minimumPressDuration = 2;
// attach the gesture to your button
[myButton addGestureRecognizer:gesture];
[gesture release];
事件处理程序myButtonLongPressed:
应如下所示:
- (void) myButtonLongPressed:(UILongPressGestureRecognizer *)gesture
{
// Button was long pressed, do something
}
请注意,UILongPressGestureRecognizer
是continuous event recognizer。
当用户仍然按住按钮时,将myButtonLongPressed:
多次调用。
如果您只想处理第一个电话,可以查看myButtonLongPressed:
中的状态:
if (gesture.state == UIGestureRecognizerStateBegan) {
// Button was long pressed, do something
}