Cocoa: изменить курсор, когда он находится над NSButton

Как я могу изменить курсор, когда он находится над NSButton?

Ответы

Ответ 1

[yourButton addCursorRect:[yourButton bounds] cursor:[theCursorYouWant]];

Ответ 2

Сначала вы должны подклассифицировать 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;  

Ответ 3

Следуя уже приведенному примеру, создаем подкласс NSButton в Swift 5:

import AppKit

class Button: NSButton {
    override func resetCursorRects() {
        addCursorRect(bounds, cursor: .pointingHand)
    }
}

Ответ 4

Если кнопка добавляет курсор rect.