2012-02-28 37 views
0

我想在应用中嵌入UIScrollView并将其设置为默认隐藏状态。当我在键盘上按住一个键,即D 3秒钟,那么这个UIScrollView会弹出,是否有可能实现这个想法?Objective-c:当我按住几秒钟的按键时,是否可以弹出UIScrollView

感谢

+0

为什么收盘上下票?我认为这是一个非常有效的问题,主要归结为:如何检测一个按键被按下并保持一段时间? – DarkDust 2012-02-28 11:28:11

+0

你是指屏幕键盘还是蓝牙键盘?这是一个主要的区别。 – DarkDust 2012-02-28 11:29:22

+0

我可以知道为什么你隐藏和显示滚动视图,我们可以使用设置的内容 – 2012-02-28 11:46:03

回答

2

如果你不打算长期键盘按下你会考虑使用UILongPressGestureRecognizer

但是,你正在寻找长期键盘压力机。不幸的是,我看不出苹果公司的键盘可以实现这种功能,因为苹果公司已经在键盘按键上长时间使用了其他东西。例如提供角色或其他货币面值的重音版本。 (尝试长按S或$)

因此,我认为你必须完全编码你自己的键盘才能做你想做的事情。

1
UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(showResetMenu:)]; 
[piece addGestureRecognizer:longPressGesture]; 
[longPressGesture release]; 


- (void)showResetMenu:(UILongPressGestureRecognizer *)gestureRecognizer 
{ 
if ([gestureRecognizer state] == UIGestureRecognizerStateBegan) { 
    UIMenuController *menuController = [UIMenuController sharedMenuController]; 
    UIMenuItem *resetMenuItem = [[UIMenuItem alloc] initWithTitle:@"Reset" action:@selector(resetPiece:)]; 
    CGPoint location = [gestureRecognizer locationInView:[gestureRecognizer view]]; 

    [self becomeFirstResponder]; 
    [menuController setMenuItems:[NSArray arrayWithObject:resetMenuItem]]; 
    [menuController setTargetRect:CGRectMake(location.x, location.y, 0, 0) inView:[gestureRecognizer view]]; 
    [menuController setMenuVisible:YES animated:YES]; 

    pieceForReset = [gestureRecognizer view]; 

    [resetMenuItem release]; 
} 
} 

这是简单的按钮长按上后,你会得到重置弹出

相关问题