我有一個自定義的鍵盤,我想在用戶點擊UITextField時顯示。但同時我想在文本框中顯示光標。如果爲canBecomeFirstResponder返回NO,則它不會顯示默認鍵盤,但也不會顯示光標。iPhone - 可能不顯示鍵盤,但仍然顯示在UITextField中的光標?
有人可以幫我嗎?
謝謝。
我有一個自定義的鍵盤,我想在用戶點擊UITextField時顯示。但同時我想在文本框中顯示光標。如果爲canBecomeFirstResponder返回NO,則它不會顯示默認鍵盤,但也不會顯示光標。iPhone - 可能不顯示鍵盤,但仍然顯示在UITextField中的光標?
有人可以幫我嗎?
謝謝。
註冊鍵盤的通知觀察員(如要隱藏鍵盤視圖控制器): -
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hideKeyboard:) name:UIKeyboardWillShowNotification object:nil];
在hideKeyboard認沽:功能: -
-(void)hideKeyboard:(NSNotification *)notification {
for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows]) {
for (UIView *keyboard in [keyboardWindow subviews]) {
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES) {
keyboard.alpha = 0;
}
}
}
}
在iOS4中不適用於我。該方法被調用,但沒有視圖有一個前綴的UIKeyboard – 2010-10-28 22:54:56
thnx快樂..真的很有幫助我想顯示光標閃爍在我的文本字段中,而不顯示鍵盤和它的工作真的gr8 ... – 2012-09-17 09:04:30
有2個解決方案,您的問題。 1)將鍵盤的alpha設置爲0會使鍵盤不可見......這可能是你想要的。光標將出現。
2)UITextField實現UITextInputTraits協議。當它成爲第一響應者時,它總是會調用鍵盤。您將需要從它或其他類繼承以更改該默認行爲。
祝你好運。
如果您告訴我們您要完成的任務,我們可能會提出更完善的方法來實現它。
玩得開心。
爲什麼你甚至需要光標? 我認爲你需要做的就是當用戶按自己的鍵盤上的按鍵時,你可以更新輸入的文本值。
問題的答案是爲您的自定義鍵盤創建一個視圖,然後編輯UITextField的inputView
屬性並將其傳遞給您的自定義鍵盤的視圖。
我希望有幫助。
thanx ArturoVM其工作正常我的 – 2013-01-28 04:46:34
看起來像你想要的是一個帶有自定義鍵盤的UITextField。創建類CustomKeyboard : UIView
並添加按鈕/佈局視圖。然後,對於您的文本字段,只需將inputView屬性設置爲類CustomKeyboard textField.inputView = customKeyboard;
的一個實例即可。您還需要將inputView屬性設置爲readwrite @property (readwrite, retain) UIView *inputView;
通過設置inputView屬性,當文本字段變爲第一響應者時,標準iPhone鍵盤不會出現。
如果你不需要自定義鍵盤功能(也許你的文本輸入非常非正統),然後創建一個虛擬的UIView(沒有指定框架),並使得.inputView可以正常工作。然後在你的textField上調用becomeFirstResponder。 – HenryRootTwo 2015-06-29 07:23:19
重寫以下UITextFieldDelegate中的兩個方法。注意,這種方法都有效的UITextField和UITextView的(在這種情況下,你覆蓋UITextViewDelegate相應的方法)
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if (!textField.inputView) {
//hides the keyboard, but still shows the cursor to allow user to view entire text, even if it exceeds the bounds of the textfield
textField.inputView = [[UIView alloc] initWithFrame:CGRectZero];
}
return YES;
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
return NO;
}
如何在爲UITextField有用的光標如果沒有鍵盤?不是太多,這可能是爲什麼它不是一個支持的功能。 – psychotik 2010-04-04 07:47:05
有一個自定義鍵盤。這就是爲什麼我不想默認鍵盤顯示,但仍然希望光標,因此用戶知道他在哪裏輸入文字 – Swastik 2010-04-07 10:42:40
這絕對有用。雪莉,你找到答案了嗎? – 2010-10-28 22:55:26