It is possible to show keyboard without using UITextField and UITextView iphone app?

送分小仙女□ 提交于 2019-12-03 04:45:51

问题


I am working in iPhone messaging based app.

I want to show keyboard with keyboard inputAccessoryView in keyboard without using UITextView and UITextField. It is possible to do this? Please any one help me on this.

Thanks in advance. Looking forward your help. Thanks.

EDIT:

Because i don't want the UITextField/UITextView and the control to be in UITextView/UITextField. I am going to add inputAccessoryView on the keyboard is UITextView. when the user touches the UITextview in the keyboard inputView the actual process will be continue.


回答1:


For anyone, who wants to show keyboard without UITextField/UITextView for some reasons, could easily extend some view, which requires text input by implementing UIKeyInput protocol and canBecomeFirstResponder method.




回答2:


See the documentation for doing that here:

Simple Text Input

All you need to do is have your view implement UIKeyInput and call [inputView becomeFirstResponder] when the view is touched. Your view also needs to implement canBecomeFirstResponder and return YES.

Sample code from the iOS documentation which does this.




回答3:


You can try the answers on these other SO posts:

  • Use the system keyboard without a UITextView or UITextField

  • iphone keyboard without textview

You can also try this:

UIKeyboard *keyboard = [[[UIKeyboard alloc] initWithFrame: CGRectMake(0.0f,          contentRect.size.height - 216.0f, contentRect.size.width, 216.0f)] autorelease];
[keyboard setReturnKeyEnabled:NO];
[keyboard setTapDelegate:editingTextView];
[inputView addSubview:keyboard];



回答4:


In xcode simulator:

Sometimes the keyboard wont show because the software keyboard is off. Go to hardware -> Keyboard -> toggle keyboard 👌




回答5:


Make a View, Label or what ever to conform to UIKeyInput. In this case a UIView

Sub class a UIView:

import UIKit

class KeyInputView: UIView {
   var _inputView: UIView?

   override var canBecomeFirstResponder: Bool { return true }
   override var canResignFirstResponder: Bool { return true }

   override var inputView: UIView? {
       set { _inputView = newValue }
       get { return _inputView }
   }
}

// MARK: - UIKeyInput
//Modify if need more functionality
extension KeyInputView: UIKeyInput {
    var hasText: Bool { return false }
    func insertText(_ text: String) {}
    func deleteBackward() {}
}

Setup your View, in this case with a picker (in viewDidLoad or where ever)

let languangePicker = UIPickerView()
languangePicker.dataSource = self
languangePicker.delegate = self
keyInputView.inputView = languangePicker

To show:

keyInputView.becomeFirstResponder()

To hide:

keyInputView.resignFirstResponder()

Set picker data, from datasource (compiler force u to do it)

Grab data picker events from delegate




回答6:


I have made a small utility file that can call a Keyboard with a textfield on a button touch !

https://github.com/havocked/TZKeyboardPop



来源:https://stackoverflow.com/questions/13005969/it-is-possible-to-show-keyboard-without-using-uitextfield-and-uitextview-iphone

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!