iphone - UITextView 输入 View

标签 iphone uikeyboard

我正在为 iPad 制作自定义输入法,我希望能够用我的输入法替换系统键盘,并通过该输入法输入文本。

根据文档,我需要做的就是用我的 View 设置 inputView 属性,它将用来代替系统键盘。我这样做了,就显示键盘而言,它有效,但我如何实际在 TextView 中输入文本?

据说 TextView 需要采用UIKeyInput,我可以使用该协议(protocol)的方法来输入文本,但实际上UITextView并不采用该协议(protocol)。 conformsToProtocol:@protocol(UIKeyInput) 返回 NO 并且“deleteBackwards”未实现(insertText 和 hasText 已实现。除此之外,“insertText”不会导致 textViewDidChange: code> 要调用的委托(delegate)方法。显然我需要将 UIKeyInput 方法发送到其他对象(字段编辑器?),但如何获取它?

有什么想法吗?

最佳答案

假设你的键盘有一些按钮,为什么你不能为你的键设置一个选择器,并在单击每个按钮时附加到 textViews 文本,我已经这样做了,它工作得很好......这是实际上的方法向 UITextView 进行“写入”,此方法是 inputView 定义的自定义协议(protocol)的一部分,每当按下按钮时都会在委托(delegate)上调用,希望它有所帮助,注意:我在按下返回键时提交 ret 并且 < - 当按下退格键时。

-(void)userDidInputString:(NSString*)s
{
    NSRange r=padView.textView.selectedRange; 
    if([s isEqualToString:@"ret"])
        s=@"\n";
    if([s isEqualToString:@"<-"])
    {
        NSString *text=padView.textView.text;   
        if(r.location>0)
        {
            r.location=r.location-1;
            r.length+=1;
        }
                [padView.textView setScrollEnabled:YES];
        padView.textView.text=[text stringByReplacingCharactersInRange:r   withString:@""];
        [padView.textView setScrollEnabled:NO];
        r.length=0;
        [padView.textView setSelectedRange:r];
        [note setNoteText:padView.textView.text];

    }
    else {
        NSString *text=padView.textView.text;   

        [padView.textView setScrollEnabled:YES];
        padView.textView.text=[text stringByReplacingCharactersInRange:r withString:s];
                [padView.textView setScrollEnabled:NO];
        r.location=r.location+[s length];
        //whenever you modify the text by setting the UITextViews text property it resets the cursor to the end of the text view, we have this line below to go back to where the user left off
        [padView.textView setSelectedRange:r];


            }


}

关于iphone - UITextView 输入 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3539520/

相关文章:

iphone - UICollectionView didselect 不起作用

iphone - 声明委托(delegate) ivar 时出现 ARC 错误

ios - 为 UITextField 弹出键盘时 UIView 消失

iphone - UIKeyBoard 返回按钮 UIReturnKeyDone

ios - UIKeyboard 出现会触发滚动事件,然后关闭键盘

iphone - 在 MkMapView 上隐藏、显示注释

iphone - 实现自定义 UIScrollView

ios - 我们可以在属于同一开发者帐户的应用之间共享应用内购买吗?

ios - 键盘隐藏我的文本字段,我的解决方案代码不起作用

iphone - 点击 UIWebView 中的文本框时键盘不出现