Tôi muốn thêm lối tắt "Tiếp tục" vào trò chơi của mình. Nhưng khi người dùng hoàn thành trò chơi của tôi hoàn toàn, tôi muốn điều này bị xóa hoặc thay thế bằng một lối tắt khác. Điều này có thể không? Tôi biết 3d touch được xử lý bởi hệ thống ios, nhưng có thể vẫn còn một số tùy chọnios - Tự động chỉnh sửa danh sách phím tắt 3d touch
Trả lời
Có hai cách để tạo lối tắt - động và tĩnh.
- Tĩnh được thêm vào plist và không bao giờ thay đổi.
- Có thể thêm và xóa động trong mã.
Có vẻ như bạn muốn có một shortcut năng động, vì vậy đây là khoảng cách bạn sẽ làm điều đó:
Để thêm:
if #available(iOS 9.0, *) {
if (UIApplication.sharedApplication().shortcutItems?.filter({ $0.type == "com.app.myshortcut" }).first == nil) {
UIApplication.sharedApplication().shortcutItems?.append(UIMutableApplicationShortcutItem(type: "com.app.myshortcut", localizedTitle: "Shortcut Title"))
}
}
Để loại bỏ:
if #available(iOS 9.0, *) {
if let shortcutItem = UIApplication.sharedApplication().shortcutItems?.filter({ $0.type == "com.app.myshortcut" }).first {
let index = UIApplication.sharedApplication().shortcutItems?.indexOf(shortcutItem)
UIApplication.sharedApplication().shortcutItems?.removeAtIndex(index!)
}
}
Bạn có thể sau đó xử lý phím tắt bằng cách kiểm tra nó trong phương thức ủy nhiệm ứng dụng:
@available(iOS 9.0, *)
func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {
if shortcutItem.type == "com.app.myshortcut" {
// Do something
}
}
Đừng quên kiểm tra khả năng tương thích iOS9 và 3D Touch.
Bạn có thể tìm nhà phát triển của Apple 3d trang liên lạc ở đây:
https://developer.apple.com/ios/3d-touch/
Và các phím tắt đặc biệt năng động ở đây:
Vâng có vẻ như nó sẽ phù hợp với nhu cầu của tôi, phần buồn duy nhất về nó là bạn không thể đặt phím tắt động sau khi ứng dụng được cài đặt từ AppStore. Vì vậy, tôi đoán nó là ok rằng các phím tắt của tôi sẽ xuất hiện chỉ sau một thời gian trôi qua.Cảm ơn bạn đã trả lời, tôi sẽ thử một chút sau và nếu nó hoạt động, tôi sẽ đánh dấu nó là chính xác! –
Tôi đồng ý, chúng tôi có một ví dụ điển hình với lối tắt đăng nhập. Nó sẽ được tốt đẹp để hiển thị đăng nhập từ điểm mà tại đó các ứng dụng được tải xuống và sau đó loại bỏ này khi người dùng đăng nhập. Sẽ được quan tâm để nghe nếu có một giải pháp nhưng chúng tôi đã không tìm thấy một được nêu ra. Dù sao, vui mừng nó đã giúp và cảm ơn cho các thông tin phản hồi –
có ai đã thử mã này? nếu các mục tắt không phải là một mảng có thể thay đổi, thì làm cách nào để bạn xóa trực tiếp khỏi nó? bạn có nên tạo một mảng trống và đặt thay vào đó không? – skinsfan00atg
tôi giả sử bạn đang nói về cái gọi là nhanh Hành động mà người dùng có thể gọi bằng cách chạm vào biểu tượng ứng dụng của bạn trên màn hình chính của mình. Bạn có thể tự động tạo và cập nhật chúng ngay từ mã của bạn. Cách tốt nhất để tìm hiểu về tất cả các khả năng là nhìn vào số sample code của Apple.
[UIApplication sharedApplication].shortcutItems = @[];
làm việc cho tôi. câu trả lời khác cho thấy loại bỏ một cái gì đó từ mảng không hoạt động như shortcutItems không phải là mutable.
Đây là một lớp tiện dụng để kích hoạt các đoạn tắt của cảm ứng 3D tắt của biểu tượng ứng dụng của bạn. Tất nhiên bạn có thể kích hoạt bất kỳ hành động nào, nhưng điều này có lẽ là phổ biến nhất. Sau đó nó tự đồng bộ khi ứng dụng xuất hiện hoặc chuyển sang nền. Tôi đang sử dụng điều này để kích hoạt một phần "Dự án của tôi" chỉ sau khi người dùng đã tạo ra một (VisualizerProject.currentProject.images.count> 0).
class AppShortcut : UIMutableApplicationShortcutItem {
var segue:String
init(type:String, title:String, icon:String, segue:String) {
self.segue = segue
let translatedTitle = NSLocalizedString(title, comment:title)
let iconImage = UIApplicationShortcutIcon(templateImageName: icon)
super.init(type: type, localizedTitle:translatedTitle, localizedSubtitle:nil, icon:iconImage, userInfo:nil)
}
}
class AppShortcuts {
static var shortcuts:[AppShortcut] = []
class func sync() {
var newShortcuts:[AppShortcut] = []
//reverse order for display
newShortcuts.append(AppShortcut(type: "find-color", title: "Find Color", icon:"ic_settings_black_24px", segue: "showColorFinder"))
newShortcuts.append(AppShortcut(type: "samples", title: "Sample Rooms", icon:"ic_photo_black_24px", segue: "showSamples"))
//conditionally add an item like this:
if (VisualizerProject.currentProject.images.count > 0) {
newShortcuts.append(AppShortcut(type: "projects", title: "My Projects", icon:"ic_settings_black_24px", segue: "showProjects"))
}
newShortcuts.append(AppShortcut(type: "visualizer", title: "Paint Visualizer", icon:"ic_photo_camera_black_24px", segue: "showPainter"))
UIApplication.sharedApplication().shortcutItems = newShortcuts
shortcuts = newShortcuts
}
class func performShortcut(window:UIWindow, shortcut:UIApplicationShortcutItem) {
sync()
if let shortcutItem = shortcuts.filter({ $0.type == shortcut.type}).first {
if let rootNavigationViewController = window.rootViewController as? UINavigationController,
let landingViewController = rootNavigationViewController.viewControllers.first {
//Pop to root view controller so that approperiete segue can be performed
rootNavigationViewController.popToRootViewControllerAnimated(false)
landingViewController.performSegueWithIdentifier(shortcutItem.segue, sender: self)
}
}
}
}
Sau đó, trong đại biểu ứng dụng của bạn, thêm đồng bộ và thực hiện các phím tắt gọi
func applicationDidEnterBackground(application: UIApplication) {
AppShortcuts.sync()
}
func applicationDidBecomeActive(application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
AppShortcuts.sync()
}
@available(iOS 9.0, *)
func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {
if let window = self.window {
AppShortcuts.performShortcut(window, shortcut: shortcutItem)
}
}
- 1. Phím tắt trong iOS?
- 2. Phím tắt của Trình chỉnh sửa thẻ nhanh trong Aptana
- 3. Phím tắt tự động nhập Xamarin
- 4. Swift 3D Touch iOS 10 Màn hình chính nhanh chóng chia sẻ Mục bị thiếu
- 5. Hiển thị tiện ích phím tắt 3D cảm ứng lớn
- 6. Triển khai Tự động sửa trong phần mở rộng bàn phím iOS 8
- 7. Phím tắt trình tự phím tắt cho menu
- 8. Phím tắt tùy chỉnh
- 9. Danh sách chỉnh sửa của Kotlin
- 10. Chỉnh sửa văn bản mà không tự động sửa
- 11. Xcode 4: Phím tắt để chuyển đổi Trình chỉnh sửa trợ lý sang chế độ Theo dõi (Tự động)?
- 12. Tùy chỉnh các phím tắt Mathematica
- 13. iOS tắt Bàn phím Quicktype theo lập trình trên UIWebBrowserView
- 14. Phím tắt để tạo danh sách mục đơn trong C#
- 15. Phím tắt để thêm vào Danh sách trong HashMap
- 16. Kích thước biểu tượng thích hợp cho mục phím tắt 3D Touch trên màn hình chính là gì?
- 17. Wordpress - Thứ tự danh sách danh mục trong trang chỉnh sửa bài đăng
- 18. Sencha Touch - bỏ chọn mục danh sách?
- 19. Làm thế nào để tắt tự động sửa văn bản cho UITextField hoặc bàn phím?
- 20. Đặt phím tắt tự động hoàn thành trong Eclipse
- 21. Eclipse: Liên kết với phím tắt của trình chỉnh sửa bàn phím?
- 22. Chỉnh sửa các phần tử trong danh sách trong python
- 23. Chỉnh sửa chính tả tùy chỉnh UITextView và tự động sửa
- 24. tự động hoàn tất trong trình chỉnh sửa ace.js
- 25. Danh sách động tự động mở rộng
- 26. Tắt tự động sửa trong nhập văn bản Safari
- 27. Chỉnh sửa tự động hoàn tất Android từ máy chủ
- 28. ios UITextField để chỉnh sửa với uidatepicker
- 29. Phím tắt Xcode 4 để hoán đổi tiêu điểm giữa trình chỉnh sửa và trình chỉnh sửa trợ lý
- 30. Android picker/danh sách tương tự để chọn ngày iOS
đâu là tiếp tục shortcut đặt? Cũng bởi phím tắt tôi giả sử bạn có nghĩa là nút? – FredLoh
Trò chơi của tôi dựa trên cấp độ. Vì vậy, phím tắt này là UIApplicationShortCut (xuất hiện trong menu ios chính) và có ý định khởi chạy mức độ sẵn có cuối cùng –