Trên máy Mac, bạn luôn có thể lấy vị trí của con chuột "bên ngoài luồng sự kiện" (nghĩa là ngay cả khi bạn chưa đăng ký bất kỳ phương thức ủy quyền nào cho số mouseUp:
et al) bằng cách gọi [NSEvent mouseLocation]
.Bắt chạm khi khởi chạy trên iOS
Có cách nào trên iOS để nhận sự kiện chạm hiện tại mà không cần nghe touchesBegan:
không?
Tôi hỏi vì có ít nhất một tình huống trong đó touchesBegan không được gọi là: khi khởi chạy ứng dụng, nếu một lần chạm đang diễn ra, chạm vàoBegan không bao giờ được gọi là. Trong thực tế, không phải là bất kỳ phương pháp UIEvent liên quan đến cảm ứng gọi là gần như tôi có thể nói (cũng không phải của UIApplication/UIWindow's sendEvent:
, rõ ràng).
Tôi muốn thay đổi hành vi ứng dụng của mình một chút dựa trên việc một lần chạm có đang diễn ra khi khởi chạy hay không. Có cách nào để phát hiện cảm ứng đang diễn ra khi khởi chạy ứng dụng không?
"Tại thời điểm khởi chạy ứng dụng" có ý nghĩa gì đối với ứng dụng của bạn? Bạn có thực hiện bất kỳ hành động tốn thời gian nào trên luồng chính tại thời gian tải không? – yurish
"khi khởi chạy ứng dụng" là "khi người dùng nhấn vào biểu tượng ứng dụng trên bàn đạp và ứng dụng sẽ mở". Không nhận được các sự kiện liên lạc là * không * vì ứng dụng quá nặng nề với việc xử lý nặng; đó là do các lần chạm đang diễn ra khi ứng dụng mở ra không được gửi tới ứng dụng thông qua các phương tiện thông thường. Tôi đang cố gắng tìm hiểu xem có ai biết một cách nào đó ngoài vòng lặp bình thường, có lẽ là phân lớp và ghi đè, để có được những chạm đang diễn ra tùy ý, từ bất kỳ phương thức nào, bất cứ lúc nào. – SG1
Tôi nghĩ rằng điều này là không thể. UIApplication là không thích hợp cho subclassing và đó là điểm vào cho ứng dụng của bạn –