2013-07-03 3 views
-1

Я новичок в Objective-c, и я пытаюсь создать тестовое приложение.Цель c сменить цвет фона при нажатии клавиши клавиатуры

У меня есть следующий метод:

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
     //here i should put some code 
     return TRUE; 
} 

Как я могу сделать какой-то код работает внутри этого метода печати, какая клавиша нажата в моей клавиатуре?

Можно изменить состояние ключа? Например, изменение цвета фона или цвета букв?

Заранее благодарен!

+0

Сторона примечания - тип возврата этого метода - 'BOOL'. Поэтому вы должны вернуть либо «ДА», либо «НЕТ», а не «ИСТИНА». – rmaddy

ответ

1

Вы не можете получить индивидуальные нажатия клавиш в iOS. Для любого изменения вызывается метод shouldChangeCharactersInRange. Это включает в себя ввод пользователем клавиатуры или пользователя, вставляющий текст из буфера обмена.

Отсутствует API, позволяющий вносить любые изменения в системную клавиатуру. Если вы хотите обновить клавиатуру по типу пользователя, вам нужно будет создать свою собственную клавиатуру и обработать события по своему усмотрению.

+0

И если вы не собираетесь воссоздать хотя бы все функциональные возможности системной клавиатуры, вы, вероятно, не должны пытаться. Не только это, но если Apple не откроет для этого API, ваша клавиатура будет работать только в вашем приложении. (Или на взломанных телефонах). Наконец, я отмечаю, что некоторые кроссворды имеют свои собственные клавиатуры, но им нужна только часть функциональности системной клавиатуры, и даже тогда они получают некоторые вещи не так. – nielsbot

+0

Не пытайтесь уменьшить ответ rmaddy, сказав это. – nielsbot

+0

@nielsbot Хорошие комментарии. Я согласен с тем, что создать собственную клавиатуру очень сложно. – rmaddy

0
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)aString 
  1. NSLog (@ "Письмо Прессованные:", aString);
    // Имейте в виду, что клавиша удаления и вложенный текст могут вызвать проблемы, среди нескольких других случаев.
  2. Нет, если вы не подкласс
  3. Нет, если вы не подкласс

Если вы хотите создать пользовательскую клавиатуру Есть много людей, которые предложили вверх фору для вдохновения. Google «пользовательские клавиатуры ios»

+0

Ваш первый оператор журнала не работает, если пользователь удаляет ключ удаления или вставляет текст из картона. – rmaddy

+0

В ситуациях, о которых вы указали, нет специальной буквы «письмо» для печати, что делает нажатые клавиши/текст вставленным, не относящимся к тому, что он заявляет, что он ищет. Однако, если он ищет эту информацию, он, по крайней мере, имеет отправную точку. –

+0

То, что вы указали, по-прежнему имеет значение, чтобы знать, и я согласен с этим. –

Смежные вопросы