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

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

3 ответа

Решение
[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)
    }
}

Попросите кнопку добавить курсор в прямоугольник.

Если NSButton в macOS, swift 5:

import Cocoa 
class ViewController: NSViewController {

    @IBOutlet weak var titleBtn: NSButton!
        
     override func viewDidLoad() {
       titleBtn.addCursorRect(titleBtn.bounds, cursor: .pointingHand)
     }
}
Другие вопросы по тегам