【发布时间】:2011-02-24 22:01:06
【问题描述】:
当光标位于 NSButton 上时如何更改光标?
【问题讨论】:
-
当按钮在 TextView 上方时,这里提到的所有答案都不起作用。对于这种情况,请参阅stackoverflow.com/questions/16287624/…
标签: cocoa nsbutton mouse-cursor
当光标位于 NSButton 上时如何更改光标?
【问题讨论】:
标签: cocoa nsbutton mouse-cursor
让按钮添加一个光标矩形。
【讨论】:
[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;
【讨论】:
按照已经给出的example,在Swift 5中创建一个NSButton的子类:
import AppKit
class Button: NSButton {
override func resetCursorRects() {
addCursorRect(bounds, cursor: .pointingHand)
}
}
【讨论】:
addCursorRect(bounds, cursor: .pointingHand)之前先拨打super.resetCursorRects()
如果 NSButton 在 macOS 中,swift 5:
import Cocoa
class ViewController: NSViewController {
@IBOutlet weak var titleBtn: NSButton!
override func viewDidLoad() {
titleBtn.addCursorRect(titleBtn.bounds, cursor: .pointingHand)
}
}
【讨论】: