2012-02-28 71 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]; 
} 
} 

這是簡單的按鈕長按上後,你會得到重置彈出

相關問題