Làm cách nào để có được loại con trỏ chuột hiện tại trên màn hình? (Không chỉ trên cửa sổ ứng dụng của tôi, trên toàn cầu.) Hoặc ít nhất có thể phát hiện xem con trỏ mặc định có được hiển thị không? Hoặc Carbon hoặc Ca cao là OK - hoặc thậm chí là các API hoạt động khác, tốt nhất là các API chính thức.Cách lấy loại con trỏ chuột hiện tại trong Mac OS X?
Đây là những gì tôi đã cố gắng:
NSCursor *sysCursor = [NSCursor currentSystemCursor];
if (sysCursor == nil) {
NSLog(@"nil");
}
if ([sysCursor isEqual: [NSCursor arrowCursor]] ||
[sysCursor isEqual: [NSCursor contextualMenuCursor]] ||
[sysCursor isEqual: [NSCursor closedHandCursor]] ||
[sysCursor isEqual: [NSCursor crosshairCursor]] ||
[sysCursor isEqual: [NSCursor disappearingItemCursor]] ||
[sysCursor isEqual: [NSCursor dragCopyCursor]] ||
[sysCursor isEqual: [NSCursor dragLinkCursor]] ||
[sysCursor isEqual: [NSCursor IBeamCursor]] ||
[sysCursor isEqual: [NSCursor openHandCursor]] ||
[sysCursor isEqual: [NSCursor operationNotAllowedCursor]] ||
[sysCursor isEqual: [NSCursor pointingHandCursor]] ||
[sysCursor isEqual: [NSCursor resizeDownCursor]] ||
[sysCursor isEqual: [NSCursor resizeLeftCursor]] ||
[sysCursor isEqual: [NSCursor resizeLeftRightCursor]] ||
[sysCursor isEqual: [NSCursor resizeRightCursor]] ||
[sysCursor isEqual: [NSCursor resizeUpCursor]] ||
[sysCursor isEqual: [NSCursor resizeUpDownCursor]] ||
[sysCursor isEqual: [NSCursor IBeamCursorForVerticalLayout]]
) {
NSLog(@"equal");
} else {
NSLog(@"not");
}
Con trỏ không phải là nil
, nhưng đồng thời nó không phải bằng bất kỳ của những người khác. Nó thậm chí không bằng với chính nó:
NSLog(@"%i", [[NSCursor currentSystemCursor]
isEqual:[NSCursor currentSystemCursor]]); // 0
Ý tưởng? Đây là ứng dụng kiểu LSUIElement
, nếu điều đó quan trọng.
Mã này hoạt động cho tôi cho dù ứng dụng có phải là ứng dụng đại lý 'LSUIElement' hay không. –