2010-01-25 34 views
13

Tôi muốn tạo lối tắt chung cho ứng dụng của mình. Tôi đã sử dụng 'cách thức mới mẻ' để làm điều này với phương thức addGlobalMonitorForEventsMatchingMask. Vấn đề là, sự kiện của tôi không bị "tiêu thụ": phím tắt của tôi bao gồm phím cách, vì vậy bất cứ khi nào tôi sử dụng phím tắt, Quicklook bật lên khi tôi đang ở trong Trình tìm kiếm.Phím tắt toàn cục Cocoa?

Làm cách nào để ngăn điều này xảy ra? Tôi biết nó có thể, bởi vì nhiều ứng dụng, ví dụ như ứng dụng điều khiển iTunes Bowtie, làm điều đó.

Trả lời

10

addGlobalMonitorForEventsMatchingMask: không phải là sự thay thế phù hợp cho API Hotkey Carbon hiện có cho tất cả các loại lý do; đó là khủng khiếp không hiệu quả, cho một. Và từ tài liệu:

... bạn chỉ có thể quan sát sự kiện; bạn không thể sửa đổi hoặc ngăn cản sự kiện được gửi đến ứng dụng đích ban đầu của nó.

sự kiện chính liên quan đến chỉ có thể được theo dõi nếu khả năng tiếp cận được bật hoặc nếu ứng dụng của bạn là đáng tin cậy để truy cập khả năng tiếp cận

API Hotkey vẫn là cách duy nhất để thực hiện shortcut toàn cục trong OS X. Nhưng không giống như nhiều API Carbon, API Hotkey có sẵn cho các ứng dụng 64 bit.

+0

Cảm ơn! Chỉ cần những gì tôi đang tìm kiếm! – Alice

7

Sử dụng hotkey API, có nghĩa là cho mục đích này.

+0

Không có cách nào để làm điều này? – Alice

+0

Đó là API hotkey toàn cầu duy nhất theo như tôi biết. Cảm thấy tự do để viết một phương pháp Objective-C kết thúc tốt đẹp các cuộc gọi HIToolbox nếu bạn không thích nhìn vào các cuộc gọi chức năng hoặc một cái gì đó. – Chuck

+0

Vâng, tôi sẽ làm điều đó, sau đó ... – Alice