问题
How can I change the cursor when it's over an NSButton?
回答1:
[yourButton addCursorRect:[yourButton bounds] cursor:[theCursorYouWant]];
回答2:
You should subclass NSButton first, then add the code below.
- (void)resetCursorRects
{
if (self.cursor) {
[self addCursorRect:[self bounds] cursor: self.cursor];
} else {
[super resetCursorRects];
}
}
Now you can set cursor as you like.
[self.button setCursor:[NSCursor pointingHandCursor]];
Note: add cursor as a property of your subclass, like this:
@property (strong) NSCursor *cursor;
回答3:
Following the already given example, creating a subclass of NSButton in Swift 5:
import AppKit
class Button: NSButton {
override func resetCursorRects() {
addCursorRect(bounds, cursor: .pointingHand)
}
}
回答4:
Have the button add a cursor rect.
来源:https://stackoverflow.com/questions/2925580/cocoa-change-cursor-when-its-over-an-nsbutton