2013-01-17 126 views
1

我有一個正在編輯的UITextView,我想添加一個自定義鍵盤......有什麼方法可以解除鍵盤,但離開textView在編輯模式,所以藍色光標不斷閃爍?或者更好的是,有什麼方法可以將視圖放在鍵盤的頂部?iOS解僱鍵盤,但保持編輯

+1

RohinNZ的雁來http://stackoverflow.com/questions/5615806/disable-uitextfield-keyboard應該在這裏有所幫助。 – Ephemera

+0

很棒!非常感謝你!我沒有意識到,如果鍵盤已經打開,你必須解除它,分配虛擬視圖,然後帶回鍵盤(這將不會顯示,但會將光標移回) –

+0

這是一份他的代碼在它被刪除的情況下。 'UIView * dummyView = [[UIView alloc] initWithFrame:CGRectMake(0,0,1,1)];' 'myTextField.inputView = dummyView;' –

回答

-2

試試這個

uitextfieldView.inputView = [[UIView new] autorelease];

系統鍵盤視圖不顯示它不斷光標爲你編輯。

或 您可以通過滑動屏幕外

frame.origin.y = (keyboard.frame.origin.y - 264); 
keyboard.frame = frame; 
+0

第一行代碼不起作用,第二行代碼行你在哪裏聲明變量「鍵盤」? –

+0

它現在工作!我沒有意識到,我不得不關閉鍵盤,然後分配inputView然後帶回鍵盤的代碼工作!謝謝! –

2

你應該通知UIKeyboardWillShowNotification註冊隱藏鍵盤。在顯示鍵盤之前,它會觸發註冊功能。

在這裏,您可以通過所有的Windows迭代,並可以通過以下方式識別鍵盤:

for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows]) 
{ 
    for (UIView *keyboard in [keyboardWindow subviews]) 
    { 
     if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES 
      ||[[keyboard description] hasPrefix:@"<UIPeripheralHost"]== YES) 

     { 
        //Set proper frame to hide key board here.. 
     } 

}