代码之家  ›  专栏  ›  技术社区  ›  CodeGuy

有没有一种方法可以为iPhone编程操作键盘?

  •  0
  • CodeGuy  · 技术社区  · 15 年前

    我有一个iPhone的简单应用程序,它有一个按钮,使用mfmessagecomposeviewcontroller发送文本消息。当用户按下按钮时,mfmessagecomposeviewcontroller会拉起键盘,用户可以按预期发送短信。

    我想能操纵那个键盘。换言之,例如,如果用户要发送文本“你好”,我希望能够在我的程序中识别短语“你好”,并将其更改为“生活如何”或将其更改为任何内容。这可能吗?

    谢谢!

    2 回复  |  直到 15 年前
        1
  •  0
  •   JonB    15 年前

    要使视图控制器成为其他两件事的委托,您可以在头文件中如下定义它:

    @interface AViewController : UIViewController <UITextFieldDelegate, MFMessageComposeViewControllerDelegate> {
    
        // Variable Definitions for your
        // textfield and uibutton
    
    
    }
    
    // Method Declarations here.
    // You don't need to define the delegate methods,
    // Just implement them in your .m file.
    
    @end
    

    然后使用我在下面讨论的委托方法截取已经/正在输入的文本。

        2
  •  0
  •   JonB    15 年前

    编辑:我应该在回答之前更详细地阅读你的问题。

    在iPhone上,在iOS中编辑键盘没有合法的方法。根据下面我的回答,您希望能够“截获”mfmessagecomposeviewcontroller使用的textfield/textview。

    从学习 MFMessageComposeViewController 类(它是委托)没有公共方法来“拦截”用户输入的消息。你所能做的最好的就是用一些文本来启动用户的消息。

    如果您希望实现这一点,这可能是通过对mfmessagecomposeviewcontroller进行子类(并找出textfield/view实例变量是什么),很可能苹果公司不会接受您的应用程序到应用程序商店。


    旧答案:如果您想这样做,您需要查看uitextfield的委托方法( UITextFieldDelegate )你可以采取多种不同的方法。

    textfield:应更改字符范围:替换字符串: -实现此方法将允许您在输入字符时对其进行更改。

    文本字段结束日期: -实现这一点将允许您“截获”已编辑的文本字段。反过来,您可以使用传递到方法中的textfield来获取字符串,并根据需要操作或更改单词。

    如果您使用的是UITextView,它也有自己的委托( UITextViewDelegate )使用非常相似的方法,您可以实现截取用户输入的文本。