Ответ 1
[yourButton addCursorRect:[yourButton bounds] cursor:[theCursorYouWant]];
Как я могу изменить курсор, когда он находится над NSButton?
[yourButton addCursorRect:[yourButton bounds] cursor:[theCursorYouWant]];
Сначала вы должны подклассифицировать NSButton, а затем добавить код ниже.
- (void)resetCursorRects
{
if (self.cursor) {
[self addCursorRect:[self bounds] cursor: self.cursor];
} else {
[super resetCursorRects];
}
}
Теперь вы можете установить курсор, как вам нравится.
[self.button setCursor:[NSCursor pointingHandCursor]];
Примечание: добавьте cursor
в качестве свойства вашего подкласса, например:
@property (strong) NSCursor *cursor;
Следуя уже приведенному примеру, создаем подкласс NSButton в Swift 5:
import AppKit
class Button: NSButton {
override func resetCursorRects() {
addCursorRect(bounds, cursor: .pointingHand)
}
}
Если кнопка добавляет курсор rect.