Có một lá cờ có thể được đặt để làm cho nút Ca cao được tô đậm khi được dán vào. Tôi cần phải lập trình này với mục tiêu C trên OSX.Nút Ca cao sẽ sáng lên bằng chuột trên
7
A
Trả lời
15
Thiết lập khu vực theo dõi cho chế độ xem với addTrackingArea (miễn là bạn đang sử dụng Leopard hoặc OS X mới hơn). Bạn sẽ nhận được các sự kiện khi nhập chuột và thoát chuột.
1
điều gì đó bên dưới có thể là câu trả lời.
class HoverButton: NSButton{
var backgroundColor: NSColor?
var hoveredBackgroundColor: NSColor?
var pressedBackgroundColor: NSColor?
private var hovered: Bool = false
override var wantsUpdateLayer:Bool{
return true
}
required init?(coder: NSCoder) {
super.init(coder: coder)
self.commonInit()
}
override init(frame frameRect: NSRect) {
super.init(frame: frameRect)
self.commonInit()
}
func commonInit(){
self.wantsLayer = true
self.createTrackingArea()
self.hovered = false
self.hoveredBackgroundColor = NSColor.selectedTextBackgroundColor()
self.pressedBackgroundColor = NSColor.selectedTextBackgroundColor()
self.backgroundColor = NSColor.clearColor()
}
private var trackingArea: NSTrackingArea!
func createTrackingArea(){
if(self.trackingArea != nil){
self.removeTrackingArea(self.trackingArea!)
}
let circleRect = self.bounds
let flag = NSTrackingAreaOptions.MouseEnteredAndExited.rawValue + NSTrackingAreaOptions.ActiveInActiveApp.rawValue
self.trackingArea = NSTrackingArea(rect: circleRect, options: NSTrackingAreaOptions(rawValue: flag), owner: self, userInfo: nil)
self.addTrackingArea(self.trackingArea)
}
override func mouseEntered(theEvent: NSEvent) {
self.hovered = true
NSCursor.pointingHandCursor().set()
self.needsDisplay = true
}
override func mouseExited(theEvent: NSEvent) {
self.hovered = false
NSCursor.arrowCursor().set()
self.needsDisplay = true
}
override func updateLayer() {
if(hovered){
if (self.cell!.highlighted){
self.layer?.backgroundColor = pressedBackgroundColor?.CGColor
}
else{
self.layer?.backgroundColor = hoveredBackgroundColor?.CGColor
}
}
else{
self.layer?.backgroundColor = backgroundColor?.CGColor
}
}
}
liên kết: https://github.com/fancymax/HoverButton
Các vấn đề liên quan
- 1. Nút ca cao sẽ mở trang Tùy chọn hệ thống
- 2. Ca cao: Nhấn chuột phải vào NSStatusItem
- 3. cách xử lý nút đóng cửa sổ trong ca cao
- 4. Tiếng ồn màu nâu trên ca cao
- 5. Ca cao: Để vị trí chuột hiện tại trên màn hình
- 6. Cách thực hiện trò chuyện thoại bằng ca cao?
- 7. ca cao phát mp3
- 8. Có nhiều video Ca cao và Ca cao cảm ứng có giá trị hơn không?
- 9. Ca cao không có XCode
- 10. Tạo kiểu Chuột trên nút Silverlight/WPF
- 11. Ca cao NSStatusBar Global HotKey
- 12. Kiến trúc ứng dụng ca cao trên Mac OS X
- 13. Chọn một div trên chuột bằng cách sử dụng CSS
- 14. Loại tệp khổ sở - Ca cao
- 15. Đại biểu ứng dụng - Ca cao
- 16. Nơi tìm kiếm các định dạng ngày tháng được sử dụng trong ca cao/ca cao?
- 17. Gửi một ca cao hành động - IBAction
- 18. thêm NSTimeInterval vào NSDate trong ca cao
- 19. Tạo byte ngẫu nhiên Ca cao?
- 20. Logger tốt nhất cho ca cao
- 21. Ca cao: Từ điển có khóa enum?
- 22. Khoảng cách dòng NSTextField Ca cao
- 23. Tùy chọn ứng dụng ca cao XCode?
- 24. Các nút quá cao trên Firefox
- 25. WPF: Trên Chuột di chuột lên một điều khiển cụ thể, tăng kích thước của nó và chồng lên nhau trên các nút điều khiển khác
- 26. Ca cao chuyển tiêu điểm sang ứng dụng của tôi
- 27. Lỗi ca cao 256 dữ liệu lõi
- 28. Điều hướng WebView ca cao trắng flash
- 29. Ca cao: lấy WebView mainFrame html chuỗi
- 30. Làm thế nào để hiển thị cảnh báo bật lên trong ca cao?
bạn có thể vui lòng giải thích làm thế nào để làm điều này với mã (ít nhất là với một số ví dụ ...)? – mthama