Есть ли способ манипулировать клавиатурой программно для iPhone? - PullRequest
0 голосов
/ 05 августа 2010

У меня есть простое приложение для iPhone, которое имеет кнопку и использует MFMessageComposeViewControler для отправки текстового сообщения. Когда пользователь нажимает кнопку, MFMessageComposeViewController поднимает клавиатуру, и пользователь может отправлять смс, как и ожидалось.

Я бы хотел иметь возможность манипулировать этой клавиатурой. Другими словами, например, если пользователь отправляет текст «как дела», я бы хотел, чтобы в моей программе можно было распознать фразу «как дела» и изменить ее на «как жизнь» или измени его на что угодно. Это возможно?

Ответы [ 2 ]

0 голосов
/ 05 августа 2010

Чтобы сделать контроллер представления делегатом для двух других вещей, вы определяете его, как показано ниже в заголовочном файле:

@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 голосов
/ 05 августа 2010

РЕДАКТИРОВАТЬ: Я должен был прочитать ваш вопрос более тщательно, прежде чем ответить.

Нет законного способа редактирования клавиатуры в iOS на iPhone.Согласно моему ответу ниже, вы хотите иметь возможность «перехватывать» текстовое поле / текстовое представление, используемое MFMessageComposeViewController.

Из изучения MFMessageComposeViewController класса (и его делегата) нет открытогоспособ «перехватить» сообщение, вводимое пользователем.Лучшее, что вы можете сделать, - это запустить пользователя с каким-нибудь текстом для его сообщения.

Если вы хотите этого достичь, что может быть возможно с помощью подкласса MFMessageComposeViewController (и выяснения, что такое переменная экземпляра textfield / viewесть), вполне вероятно, что Apple может не принять ваше приложение в App Store.


Старый ответ: Если вы хотите сделать что-то подобное, вам нужно взглянуть на методы делегата для UITextField( UITextFieldDelegate ).Есть несколько различных подходов, которые вы можете использовать.

textField: shouldChangeCharactersInRange: replaceString: - реализация этого метода позволит вам изменять символы по мере их ввода.

textFieldDidEndEditing: - реализация этого позволит вам «перехватить» отредактированное текстовое поле.В свою очередь, вы можете использовать текстовое поле, которое передается в метод, чтобы получить строку и манипулировать или изменять слова по своему желанию.

Если вы используете UITextView, у него также есть собственный делегат ( UITextViewDelegate) с очень похожими методами, которые вы можете реализовать, чтобы перехватывать текст, введенный пользователем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...