2010-09-21 31 views
8

Tôi có một cửa sổ đơn giản với 3 nút và tôi đang cố gắng thêm một phím nóng toàn hệ thống để tôi có thể "nhấn" các nút đó mà không phải chuyển sang ứng dụng đó, nhấn nút và sau đó quay trở lại với những gì tôi đang làm.Phím nóng toàn hệ thống cho một ứng dụng

Something như Cmd +phím Shift + nút bấm 1, Cmd +phím Shift + bấm nút 2, vv

Có cách nào để đạt được điều này trong Ca cao (với mục tiêu-C)? Cảm ơn, mã được đánh giá cao vì tôi là một tổng số newbie trên Cocoa.

Trả lời

11

Tôi cũng không thích PTHotKey, vì vậy tôi đã kết thúc viết một wrapper mới, có sẵn ở đây:

http://github.com/davedelong/DDHotKey

chỉnh sửa

2 file bạn cần là:

Và bạn muốn sử dụng nó một cái gì đó như thế này:

- (IBAction) registerHotkey:(id)sender { 
    DDHotKeyCenter * c = [[DDHotKeyCenter alloc] init]; 
    if (![c registerHotKeyWithKeyCode:kVK_ANSI_1 modifierFlags:(NSCommandKeyMask | NSShiftKeyMask) target:self action:@selector(hotkeyWithEvent:) object:nil]) { 
    NSLog(@"unable to register hotkey"); 
    } else { 
    NSLog(@"registered hotkey"); 
    } 
    [c release]; 
} 

- (void) hotkeyWithEvent:(NSEvent *)hkEvent { 
    NSLog(@"Hotkey event: %@", hkEvent); 
} 
+0

Cảm ơn, xin lỗi vì sự chậm trễ. Đó là một tuần bận rộn. Điều này có vẻ đầy hứa hẹn. Bất kỳ cách nào không sử dụng khung carbon? – Jessica

+0

@Jessica có, nhưng không thực sự. Có nếu bạn đang sử dụng 10.6 và bạn muốn lọc * mọi sự kiện chính * trên hệ thống tìm kiếm các kết hợp cụ thể để nhận ra. Không, nếu bạn muốn hành vi phím nóng thực sự. Tôi sẽ không lo lắng về Carbonness, mặc dù. Phần này của Carbon đã được nâng cấp để tương thích 64 bit. –

+0

OK, hãy để tôi thử. Hai điều: 1) bạn có một liên kết trực tiếp đến một tập tin zip (tôi không sử dụng git và tôi không thể tìm thấy một liên kết tải xuống trên trang bạn đăng). Trong khi 'cách sử dụng' rõ ràng, tôi là một người mới hoàn thành. Bạn có một đoạn mã nhỏ mà tôi có thể sử dụng làm hướng dẫn cho, giả sử, phím nóng cmd-shift-1? – Jessica

2

PTHotKey cũ và bị vỡ (tạo ra các cảnh báo) trên SDK hiện đại. Sử dụng SGHotKeysLib để thay thế.

Cả SGHotKeysLib và PTHotKey đều là mã nguồn có thể tái sử dụng. Bạn chỉ cần thêm các lớp vào dự án của riêng bạn, sau đó sử dụng chúng từ các lớp của riêng bạn.

+1

tuyệt vời, cảm ơn cho tip. Bất kỳ cơ hội nào bạn có thể đăng một đoạn mã nhỏ? như tôi đã nói, tôi chỉ bắt đầu với Cocoa – Jessica

Các vấn đề liên quan