She*_*van 2 macos cocoa nspopupbutton swift
我正在创建一个 NSPopUpButton ,它有多个 NSMenuItems,每个都有一个图像和一个标题。我试图创建的功能是这样的:当显示弹出窗口时,我希望它能够正常运行,显示标题和图像,但是当弹出窗口关闭时,我希望按钮仅显示所选项目的图像。与 Mac 日历应用程序的行为非常相似。
任何帮助将不胜感激。
您所要做的就是设置popupButton.imagePosition = .imageOnly。这是一个例子:
func swatch(size: NSSize, color: NSColor) -> NSImage {
let image = NSImage(size: size)
image.lockFocus()
color.drawSwatch(in: NSMakeRect(0, 0, size.width, size.height))
image.unlockFocus()
return image
}
override func viewDidLoad() {
super.viewDidLoad()
let homeItem = NSMenuItem(title: "Home", action: nil, keyEquivalent: "")
let workItem = NSMenuItem(title: "Work", action: nil, keyEquivalent: "")
let familityItem = NSMenuItem(title: "Family", action: nil, keyEquivalent: "")
let size = NSSize(width: 12, height: 12)
homeItem.image = swatch(size: size, color: .blue)
workItem.image = swatch(size: size, color: .purple)
familityItem.image = swatch(size: size, color: .orange)
let menu = NSMenu()
menu.addItem(homeItem)
menu.addItem(workItem)
menu.addItem(familityItem)
popupButton.menu = menu
popupButton.imagePosition = .imageOnly
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1083 次 |
| 最近记录: |