Tôi đã tạo một ứng dụng Cocoa đơn giản trong XCode 4.6 với một NSPanel
thay vì mặc định NSWindow
. Khi tôi cho phép các phi Kích hoạt tùy chọn và khởi động ứng dụng tất cả mọi thứ hoạt động tốt:NSPanel trong "Không kích hoạt" -Mode không luôn luôn hiển thị chính xác con trỏ
Bảng sẽ được hiển thị ở phía trước mọi thứ khác và khi con trỏ chuột di chuyển lên cạnh của bảng điều khiển nó thay đổi từ một bình thường mũi tên con trỏ với con trỏ thay đổi kích thước thích hợp, vì vậy người dùng biết rằng anh ấy có thể đổi kích thước bảng điều khiển.
Điều này hoạt động tốt miễn là tôi không nhấp vào bất kỳ ứng dụng nào khác ví dụ như Safari hoặc Trình tìm kiếm.
Từ thời điểm tôi đã tập trung vào một ứng dụng khác, Tôi có thể nhấp vào và di chuột qua bảng của mình nhiều như mình muốn, kiểu con trỏ sẽ không thay đổi nữa - nó luôn luôn là mũi tên và không thể trở lại hành vi bình thường.
Bảng điều khiển vẫn có thể lựa chọn và ở phía trước, bạn vẫn có thể di chuyển và đổi kích thước nó, nhưng con trỏ chuột vẫn giữ một mũi tên mọi lúc. Sau đó, bạn thậm chí không thể thay đổi nó theo cách thủ công bằng cách sử dụng một cái gì đó như: [[NSCursor crosshairCursor] set]
.
Vì vậy, tôi cần phải tìm một cách để tạo ra một NSPanel
mà giữ bình thường tự động-change-cursorstyle-khi-lơ lửng-over-panel-gờ-hành vi ngay cả khi bạn đưa ra tập trung vào một ứng dụng khác.
Tôi đã cố gắng sử dụng một tùy chỉnh NSPanel
đẳng cấp, nơi tôi đã ghi đè các phương pháp canBecomeKeyWindow
và canBecomeMainWindow
, để họ trở YES nhưng ngay cả khi tôi thực hiện Bảng điều chỉnh của tôi KeyWindow
và MainWindow
...
[myPanel makeKeyAndOrderFront:self];
[myPanel makeMainWindow];
... nó không giải quyết được vấn đề con trỏ.
Sẽ là tuyệt vời nếu ai đó có thể giúp tôi đây :)
PS .: SDK Base và Deployment Target được thiết lập để 10,8 trong dự án của tôi
Vì vậy, tôi phát hiện ra rằng các mô tả vấn đề không liên quan gì đến trạng thái cửa sổ của bảng điều khiển. Nó thực sự không quan trọng nếu nó được thiết lập để chính hoặc chính, thay vì con trỏ-vấn đề (vẫn mũi tên tất cả các thời gian) có liên quan đến trạng thái kích hoạt của ứng dụng.
Mọi thứ hoạt động tốt miễn là ứng dụng sở hữu bảng điều khiển đang hoạt động nhưng nếu bạn nhấp vào ứng dụng khác, ứng dụng của tôi bị vô hiệu hóa và không được kích hoạt lại - ngay cả khi bạn nhấp vào bảng điều khiển - vì "non-activating
" - tùy chọn được bật.
Vấn đề là tôi cần "non activating
" -option vì tôi đang tạo ứng dụng chụp màn hình trạng thái, màn hình sẽ được hiển thị và hoạt động trước mọi thứ khác nhưng không tắt bất kỳ ứng dụng đang chạy nào.Tôi có thể giải quyết vấn đề con trỏ bằng cách
[NSApp activateIgnoringOtherApps];
nhưng sau đó tham gia một ảnh chụp màn hình của một video toàn màn hình chạy trong Safari sẽ tắt Safari và thu nhỏ video, mà tôi không muốn.
Tôi có cùng một vấn đề. Có thể đăng lại nếu tôi tìm ra điều gì đó. –