Я говорю о меню, которое отображается, когда вы выбираете блок текста, который дает вам возможность вырезать/вставить/скопировать. Я понял, как добавить еще один вариант в меню, но если я добавлю два или более варианта, он сначала скажет «больше». щелкнув по нему, будут показаны все варианты, которые я добавил. Но есть ли способ показать все варианты, которые я добавил заранее? без пункта меню «больше»?Контекстное меню iPhone/iPad
ответ
Вам необходимо использовать UIMenuController. Если вы не хотите, Копировать/Вставить/Вырезать, вы будете включать в себя что-то подобное в вашем canPerformAction:
метод:
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
if(action == @selector(someSelector:))
return YES;
else
return NO;
}
Создание нового пункта меню выглядит следующим образом:
UIMenuItem *someAction = [[UIMenuItem alloc]initWithTitle:@"Something" action:@selector(doSomething:)];
UIMenuController *menu = [UIMenuController sharedMenuController];
menu.menuItems = [NSArray arrayWithObject:someAction];
[menu update];
Я предполагаю, что ваш говоря о UIMenuController
. Если вы не хотите видеть Copy/Paste/Cut/Delete/Select/SelectAll вам необходимо добавить следующий код на UITextField
'с или UITextView
' s делегата:
- (BOOL)canPerformAction: (SEL)action withSender: (id)sender {
BOOL answer = NO;
if (action == @selector(item1)) {
answer = YES;
}
if (action == @selector(item2)) {
answer = YES;
}
return answer;
}
Где item1
и item2
являются имена объектов в UIMenuController.menuItems
.
В моем опыте, если вы используете UITextView
, пункты меню «Копировать, вставить, вырезать и выбрать все» останутся, в этом случае добавьте следующий код в подкласс UITextView
.
- (BOOL) canPerformAction:(SEL)action withSender:(id)sender {
if (action == @selector(cut:) || action == @selector(copy:) || action == @selector(paste:) || action == @selector(selectAll:)) {
return YES;
}
}
Я не хочу отключать эти параметры, мне нужно добавить еще два пользовательских параметра. – Melina
- 1. Контекстное меню
- 2. Контекстное контекстное меню в Netbeans
- 3. меню опций и контекстное меню
- 4. Как использовать контекстное меню Silverlight 4 и настраиваемое контекстное меню?
- 5. Windows 7 - контекстное контекстное меню контекстного меню для Python
- 6. Как показать контекстное меню Windows Explorer (контекстное меню)?
- 7. TDBGrid показывает контекстное контекстное меню контекста вместо пользовательского меню
- 8. контекстное меню - javascript
- 9. Нежелательное контекстное меню SharePoint
- 10. Контекстное меню Windows Phone
- 11. PyQt контекстное меню
- 12. Контекстное меню не открывается
- 13. Контекстное меню в Ckfinder
- 14. Контекстное меню Левое нажатие
- 15. Контекстное меню ExpandableListView
- 16. Контекстное меню ListView
- 17. Контекстное меню Excel VBA
- 18. Можно восстановить контекстное меню
- 19. Стандартное контекстное меню DataGridView
- 20. Acrobat Контекстное меню
- 21. Брус изменение Контекстное меню
- 22. контекстное меню в vb.net
- 23. контекстное меню asp.net
- 24. Контекстное меню JavaFX WebView
- 25. контекстное меню не отображается
- 26. Пользовательское контекстное меню Android
- 27. Контекстное меню Windows Gadget
- 28. Контекстное меню с ListBoxItem
- 29. Заблокировать контекстное меню OpenFileDialog
- 30. Контекстное меню на QGraphicsWidget
Это не то, что я не хочу этого. Мне нужно добавить еще два пункта меню. – Melina
Затем вы по-прежнему используете что-то вроде я опубликовал, а затем делаете @selector (copy :), меняем его на что-то вроде @selector (copyText :), а затем реализуем свой собственный метод (void) copyText, который выполняет копирование. Тогда ваши другие предметы не попадут в большее меню. – christo16
Могу ли я изменить текст элемента меню? – Melina