2010-08-05 88 views
0

我有一個簡單的iPhone應用程序,它有一個按鈕,並使用MFMessageComposeViewControler發送短信。當用戶按下按鈕時,MFMessageComposeViewController拉起鍵盤並且用戶能夠按照預期發送短信。有沒有辦法在iPhone上編程操作鍵盤?

我希望能夠操縱該鍵盤。換句話說,例如,如果用戶發送文本「你好嗎」,我希望能夠在我的程序中識別出「你好嗎」並將其改爲「生活如何」或將其改爲任何內容。這可能嗎?

謝謝!

回答

0

爲了使視圖控制器等委託其他兩件事情,你在頭文件中定義它像下面:

@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 

然後使用委託方法我談到了以下攔截具有文本/正在輸入。

+0

非常感謝!太棒了。 – CodeGuy 2010-08-05 17:30:31

0

編輯:我應該在回答前仔細閱讀你的問題。

iPhone上沒有合法的編輯鍵盤的方式。根據我下面的回答,您希望能夠「攔截」MFMessageComposeViewController使用的textfield/textview。

從研究MFMessageComposeViewController類(以及它的委託),沒有公開的方法來「攔截」用戶輸入的消息。你可以做的最好的事情是用一些文本來啓動用戶的信息。

如果你想達到這個目的,這可能是通過對MFMessageComposeViewController進行子分類(並找出textfield/view實例變量是什麼),很可能Apple可能不會接受你的應用程序到App Store。


老答案:如果你想要做這樣的事情,你需要看的委託方法給出UITextField(UITextFieldDelegate)。你可以採取多種不同的方法。

textField:shouldChangeCharactersInRange:replacementString: - 實現此方法將允許您更改字符,因爲它們被輸入。

textFieldDidEndEditing: - 執行此操作將允許您「截取」已編輯的文本字段。反過來,您可以使用傳入該方法的文本字段來獲取字符串,並根據需要操作或更改單詞。

如果您使用的是UITextView,它也有它自己的代表(UITextViewDelegate),它具有非常類似的方法,可以實現截取用戶輸入的文本。

+0

我改變了我的設計。我將有一個UITextField,允許用戶輸入文本,然後我可以操縱他們輸入的文本,然後我可以將短信的主體指定爲該文本。 現在,由於我是iPhone編程新手,我有一個問題,也許你可以幫助我?我想要一個具有UITextField和一個按鈕的視圖。用戶在文本框中輸入文本,然後按按鈕發送短信。我怎樣才能讓ViewController有一個MFMessageComposeViewControllerDelegate和一個UITextFieldDelegate?我需要對嗎? – CodeGuy 2010-08-05 16:26:22

+0

我會在另一篇文章中回答,它會更容易。 – JonB 2010-08-05 17:23:40

相關問題