पर माउस के साथ प्रकाश डाला जाएगा क्या कोई ध्वज सेट किया जा सकता है जो कोको बटन को हाइलाइट होने पर हाइलाइट किया जाएगा। मुझे ओएसएक्स पर उद्देश्य सी के साथ प्रोग्रामेटिक रूप से इसकी आवश्यकता है।कोको बटन जो
7
A
उत्तर
15
addTrackingArea के साथ दृश्य के लिए एक ट्रैकिंग क्षेत्र सेटअप करें (बशर्ते आप तेंदुए या नए ओएस एक्स का उपयोग कर रहे हों)। आपको माउस एंटर और माउस से बाहर निकलने पर ईवेंट मिलेंगे।
1
शायद उत्तर से नीचे कुछ।
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
}
}
}
आप कृपया कैसे (कम से कम कुछ उदाहरण के साथ ...) कोड के साथ ऐसा करने का तरीका कर सकते हैं? – mthama