单击按钮后,如何在NSButton旁边显示一个NSButton?
到目前为止,这就是我所拥有的:
@IBOutlet weak var BtnMenu: NSButton!
// Menu
let appMenu = NSMenu()
let showPrefsMenuItem = NSMenuItem(title: "Preferences...", action: #selector(VC.showPrefs(_:)), keyEquivalent: "")
let showAboutMenuItem = NSMenuItem(title: "About", action: #selector(VC.showAbout(_:)), keyEquivalent: "")
let quitAppMenuItem = NSMenuItem(title: "Quit", action: #selector(VC.quitApp(_:)), keyEquivalent: "")
override func viewDidLoad() {
super.viewDidLoad()
// Set up menu
self.appMenu.addItem(self.showPrefsMenuItem)
self.appMenu.addItem(self.showAboutMenuItem)
self.appMenu.addItem(NSMenuItem.separatorItem())
self.appMenu.addItem(self.quitAppMenuItem)
}
// Shows the app menu
@IBAction func openMenu(sender: NSButton) {
self.appMenu.popUpMenuPositioningItem(self.appMenu.itemAtIndex(0), atLocation: NSEvent.mouseLocation(), inView: nil)
}但是现在,菜单显示在鼠标位置上。有办法显示按钮旁边的菜单吗?
谢谢。
发布于 2016-12-13 12:38:06
我就是这样解决的:
let p = NSPoint(x: sender.frame.origin.x, y: sender.frame.origin.y - (sender.frame.height / 2))
self.appMenu.popUp(positioning: nil, at: p, in: sender.superview)在本例中,菜单显示在单击按钮下。
发布于 2017-04-17 16:18:23
斯威夫特3号
在按钮下面显示NSMenu:
let p = NSPoint(x: 0, y: sender.frame.height)
appMenu.popUp(positioning: nil, at: p, in: sender)在按钮右侧显示NSMenu:
let p = NSPoint(x: sender.frame.width, y: 0)
appMenu.popUp(positioning: nil, at: p, in: sender)发布于 2016-04-11 21:49:26
试试这个:
let p = NSPoint(x: sender.frame.origin.x, y: sender.frame.origin.y)
self.appMenu.popUpMenuPositioningItem(self.appMenu.itemAtIndex(0), atLocation:p , inView: nil)https://stackoverflow.com/questions/36559655
复制相似问题