Làm thế nào để kiểm tra xem Control đang có focus hay mất focus trong Swift MacOs

Trong ngôn ngữ Swift phát triển ứng dụng cho MacOs, mình viết một Control đặt tên là MyButton là lớp con của NSButton, vấn đề mà mình chưa thể giải quyết là: làm thế nào để kiểm tra xem Control đang có focus hay mất focus? (Ví dụ khi đả click chuột lên MyButton thì nó có focus, click chuột sang control khác thì mất focus). Mong mọi người giúp đỡ?

1 Like

Mình chỉ là iOS dev, chưa viết macOS app, nhưng theo những gì mình search thì có thể sử dụng đoạn code sau để check

extension NSButton {
    var isFirstResponder: Bool {
        if let responder = NSApplication.shared.firstResponder {
            return self == responder
        }
        return false
    }
}
var button = NSButton()
let isFocus = button.isFirstResponder

Hi vọng có thể giúp được bạn.

4 Likes

cám ơn bạn đã trả lời cho câu hỏi của minh, mình sẻ thử.

Mình đã tìm ra cách có lẽ là tạm dùng được, đó là dùng NSTrackingArea rồi thêm vào hàm có sẳn của NSButton là updateTrackingAreas trong code của control của mình (MyButton)

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?