2014-01-16 3 views
0

Я видел, как некоторые приложения добавили пользовательскую строку на клавиатуру. Строка может включать, например, стрелки, модификаторы, копию и вставку и т. Д. Я хотел бы добавить один из них в моем собственном приложении, но что они на самом деле? Являются ли они просто панелями инструментов с кнопками, которые скрыты, когда клавиатура скрыта, или есть фреймворк/особенность, специально предназначенная для добавления строк на клавиатуру?Добавление пользовательской строки на клавиатуре

+1

Это UIToolbar или обычай добавил UIView в текстовое поле как inputAccessoryView. –

ответ

3

Все просто. Вам просто нужно назначить свой собственный вид строки на UITextField's inputAccessoryView. Самый удобный способ - использовать UIToolBar как inputAccessoryView.

Прочтите Custom Views for Data Input для более подробной информации.

0

Зачем нужна библиотека?

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

+0

Но как заставить кнопки выглядеть как кнопки на клавиатуре? – Spookbuster

+1

стиль их соответственно ... – carlossless

+0

Хорошо, так нет «шаблона»? – Spookbuster

-2

Добавить это когда текстовое поле начинает редактирование:

UIButton *doneBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
[doneBtn setBackgroundImage:[UIImage imageNamed:@"TextViewDone.png"] forState:UIControlStateNormal]; 

[doneBtn addTarget:self action:@selector(closeKeyboard) forControlEvents:UIControlEventTouchUpInside]; 
doneBtn.frame = CGRectMake(self.view.frame.size.width-70,6,64,30); 


headerBarView = [[UIView alloc]initWithFrame:CGRectMake(0,headerY,self.view.frame.size.width,40)]; 
headerBarView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"TextViewBar.png"]]; 
[headerBarView addSubview:doneBtn]; 
[self.view addSubview:headerBarView]; 

И это когда TextField заканчивает редактирование:

// Action for close keyboard of header bar for UITextView ***** 
- (void) closeKeyboard 
{ 
    [headerBarView removeFromSuperview]; 
} 
+1

Будет выглядеть уродливым, когда устройство изменит ориентацию с представленной клавиатурой. –

0

Мой код:

UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)]; 
numberToolbar.barStyle = UIBarStyleBlackTranslucent; 
numberToolbar.items = [NSArray arrayWithObjects: 
         [[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelNumberPad)], 
         [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], 
         [[UIBarButtonItem alloc]initWithTitle:@"Apply" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad)], 
         nil]; 
[numberToolbar sizeToFit]; 
self.textField.inputAccessoryView = numberToolbar; 
+1

Объяснение будет приятным. – Spookbuster

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