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

前端 未结 6 1195
执笔经年
执笔经年 2021-01-31 15:53

I am working in iPhone messaging based app.

I want to show keyboard with keyboard inputAccessoryView in keyboard without using UITextView and

相关标签:
6条回答
  • 2021-01-31 16:16

    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.

    0 讨论(0)
  • 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

    0 讨论(0)
  • 2021-01-31 16:24

    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];
    
    0 讨论(0)
  • 2021-01-31 16:25

    In xcode simulator:

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

    0 讨论(0)
  • 2021-01-31 16:30

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

    https://github.com/havocked/TZKeyboardPop

    0 讨论(0)
  • 2021-01-31 16:31

    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.

    0 讨论(0)
提交回复
热议问题