2010-09-07 6 views
2

Как я могу скрыть клавиатуру, но показать курсор для textfiled?Скрыть клавиатуру, но показать курсор

+0

@hydrogen: Мне еще не удалось переместить iPhone-ключ для iPhone, можете ли вы объяснить, как бы вы это сделали? Мне просто интересно:) – fuz

+1

Как положить его за стол? – 2010-09-07 06:32:09

ответ

0

Вам необходимо переместить рамку клавиатуры. Ваше приложение может быть отклонено, если вы попробуете это (он не использует стандартные вызовы API). Вот код:

- (void)hideKeyboard 
{ 
    for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows]) { 

    // Now iterating over each subview of the available windows 
    for (UIView *keyboard in [keyboardWindow subviews]) { 

     // Check to see if the view we have referenced is UIKeyboard. 
     // If so then we found the keyboard view that we were looking for. 
     if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES) { 

     // animate the keyboard moving 
     CGContextRef context = UIGraphicsGetCurrentContext(); 
     [UIView beginAnimations:nil context:context]; 
     [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
     [UIView setAnimationDuration:0.4]; 

     // remove the keyboard 
     CGRect frame = keyboard.frame; 
     // if (keyboard.frame.origin.x >= 0) { 
     if (keyboard.frame.origin.y < 480) { 
      // slide the keyboard onscreen 
      //frame.origin.x = (keyboard.frame.origin.x - 320); 

      // slide the keyboard onscreen 
      frame.origin.y = (keyboard.frame.origin.y + 264); 
      keyboard.frame = frame; 
     } 
     else { 
      // slide the keyboard off to the side 
      //frame.origin.x = (keyboard.frame.origin.x + 320); 

      // slide the keyboard off 
      frame.origin.y = (keyboard.frame.origin.y - 264); 
      keyboard.frame = frame; 
     } 

     [UIView commitAnimations]; 
     } 
    } 
    } 
} 
+0

Он также не использует частные API. Единственная часть, которая может быть спорным является _hasPrefix: @ « Kheldar

+0

Он не использует частные API-интерфейсы, но прохождение по иерархии представлений - это, как правило, плохая идея, так как Apple может изменить ее в какой-то момент без предупреждения. Я не уверен, что люди в App Store проверяют эту вещь. –

3

Я получил его!

Вы можете установить uitextfieldView.inputView = [[UIView new] autorelease]; вид системной клавиатуры не отображается снова и держит курсор!