Im nói về menu hiển thị khi bạn chọn một khối văn bản mà nó cung cấp cho bạn tùy chọn để cắt/dán/sao chép. Tôi đã tìm ra cách thêm một tùy chọn nữa vào menu, nhưng nếu tôi thêm hai hoặc nhiều tùy chọn, nó sẽ nói "nhiều" hơn trước. nhấp vào nó sẽ hiển thị tất cả các tùy chọn tôi đã thêm vào. Nhưng có cách nào để hiển thị tất cả các tùy chọn tôi đã thêm trả trước không? không có mục menu "thêm"?Trình đơn ngữ cảnh của iPhone/iPad
Trả lời
Bạn cần sử dụng UIMenuController. Nếu bạn không muốn Copy/Paste/Cut, bạn sẽ bao gồm một cái gì đó như thế này trong canPerformAction:
phương pháp của bạn:
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
if(action == @selector(someSelector:))
return YES;
else
return NO;
}
Tạo một mục trình đơn mới trông như thế này:
UIMenuItem *someAction = [[UIMenuItem alloc]initWithTitle:@"Something" action:@selector(doSomething:)];
UIMenuController *menu = [UIMenuController sharedMenuController];
menu.menuItems = [NSArray arrayWithObject:someAction];
[menu update];
tôi giả sử bạn nói về UIMenuController
. Nếu bạn không muốn xem Copy/Paste/Cut/Xóa/Select/SelectAll bạn sẽ cần phải thêm mã sau vào UITextField
's hoặc UITextView
' s đại biểu:
- (BOOL)canPerformAction: (SEL)action withSender: (id)sender {
BOOL answer = NO;
if (action == @selector(item1)) {
answer = YES;
}
if (action == @selector(item2)) {
answer = YES;
}
return answer;
}
đâu item1
và item2
là tên của các đối tượng trong UIMenuController.menuItems
.
Theo kinh nghiệm của tôi nếu bạn đang sử dụng UITextView
các mục menu Sao chép, Dán, Cắt và Chọn Tất cả sẽ vẫn còn, trong trường hợp này, hãy thêm mã sau vào một lớp con của UITextView
.
- (BOOL) canPerformAction:(SEL)action withSender:(id)sender {
if (action == @selector(cut:) || action == @selector(copy:) || action == @selector(paste:) || action == @selector(selectAll:)) {
return YES;
}
}
Tôi không muốn tắt các tùy chọn này, tôi cần thêm hai tùy chọn tùy chỉnh khác. – Melina
- 1. Gọi Trình đơn ngữ cảnh của NotifyIcon
- 2. Trình đơn phụ WPF cho trình đơn ngữ cảnh
- 3. Trình đơn ngữ cảnh trên Android WebView
- 4. Xóa Trình đơn ngữ cảnh trong TinyMCE
- 5. Trình đơn ngữ cảnh tab cho WeifenLuo.WinFormsUI.Docking
- 6. Hiển thị hộp kiểm cho Menu ngữ cảnhBước hoặc Trình đơn ngữ cảnh của một nút
- 7. C# Thêm hộp kiểm vào trình đơn ngữ cảnh WinForms
- 8. Trình đơn ngữ cảnh không thể nhấp vào Tiêu đề
- 9. jQuery Right Mouse nhấp vào trình đơn ngữ cảnh plugin
- 10. Trình đơn ngữ cảnh & phương thức registerForContextMenu là gì()
- 11. Google maps v3 - Trình đơn ngữ cảnh có sẵn?
- 12. Trình đơn ngữ cảnh jQuery xung đột với jQuery Draggable
- 13. Thêm tập lệnh vào trình đơn ngữ cảnh của trình tìm kiếm MacOS
- 14. Tạo giải pháp VS2010 từ trình đơn ngữ cảnh của trình khám phá Windows
- 15. Thêm vào menu ngữ cảnh của trình duyệt?
- 16. Lấy nhiều tệp (đối số) từ trình đơn ngữ cảnh của Windows shell trên C#
- 17. Thêm các mục vào trình đơn ngữ cảnh của Visual Studio
- 18. Trình đơn ngữ cảnh của Nhóm Egit chỉ có một tùy chọn: Áp dụng bản vá
- 19. Ngữ pháp của các ngôn ngữ lập trình hiện đại không có ngữ cảnh hay nhạy cảm với ngữ cảnh?
- 20. Thuật ngữ "mệnh đề" trong ngữ cảnh lập trình
- 21. Trình quản lý ngữ cảnh cho MySQLdb
- 22. "Xây dựng" mục trong trình đơn ngữ cảnh của Windows Explorer của một tệp giải pháp VS?
- 23. xul: tạo một mục trình đơn ngữ cảnh nhấp chuột phải chỉ với siêu liên kết
- 24. Cách tạo trình đơn ngữ cảnh mở rộng vỏ trong Python (như dropbox)
- 25. Tự động thêm các mục vào Trình đơn ngữ cảnh & bộ Nhấp vào hành động
- 26. jQuery Nhấp chuột phải vào Trình đơn ngữ cảnh Trợ giúp!
- 27. Trình đơn ngữ cảnh jQuery - tìm phần tử nào đã kích hoạt nó
- 28. Visual Studio Add-In - thêm một mục trình đơn ngữ cảnh vào giải pháp thám hiểm
- 29. Cấu hình trình đơn ngữ cảnh nhấp chuột phải jstree cho các loại nút khác nhau
- 30. Ngữ cảnh Bản vẽ của NSView
Không phải là tôi không muốn những thứ đó. Tôi cần thêm hai mục menu nữa. – Melina
Sau đó, bạn vẫn sử dụng một cái gì đó như tôi đăng nhưng thay vì sau đó làm @selector (sao chép :), thay đổi nó thành một cái gì đó như @selector (copyText :), sau đó thực hiện của riêng bạn - (void) copyText phương pháp sao chép. Sau đó, các mục khác của bạn sẽ không bị đẩy vào menu khác. – christo16
Tôi có thể thay đổi văn bản của mục menu không? – Melina