首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Swift macOS中显示NSButton旁边的NSButton

在Swift macOS中显示NSButton旁边的NSButton
EN

Stack Overflow用户
提问于 2016-04-11 21:33:46
回答 4查看 3.7K关注 0票数 7

单击按钮后,如何在NSButton旁边显示一个NSButton

到目前为止,这就是我所拥有的:

代码语言:javascript
复制
@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)
}

但是现在,菜单显示在鼠标位置上。有办法显示按钮旁边的菜单吗?

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-12-13 12:38:06

我就是这样解决的:

代码语言:javascript
复制
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)

在本例中,菜单显示在单击按钮下。

票数 13
EN

Stack Overflow用户

发布于 2017-04-17 16:18:23

斯威夫特3号

在按钮下面显示NSMenu:

代码语言:javascript
复制
    let p = NSPoint(x: 0, y: sender.frame.height)
    appMenu.popUp(positioning: nil, at: p, in: sender)

在按钮右侧显示NSMenu:

代码语言:javascript
复制
    let p = NSPoint(x: sender.frame.width, y: 0)
    appMenu.popUp(positioning: nil, at: p, in: sender)
票数 6
EN

Stack Overflow用户

发布于 2016-04-11 21:49:26

试试这个:

代码语言:javascript
复制
let p = NSPoint(x: sender.frame.origin.x, y: sender.frame.origin.y)
self.appMenu.popUpMenuPositioningItem(self.appMenu.itemAtIndex(0), atLocation:p , inView: nil)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36559655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档