gpt4 book ai didi

macos - Xcode_OSX/Swift_NSPopUpButton。

转载 作者:搜寻专家 更新时间:2023-10-31 08:18:52 26 4
gpt4 key购买 nike

我对此非常陌生,所以请记住这一点!

我整晚都在这个地方,看了无数视频/闹鬼无数论坛...我找不到一个答案!

我正在尝试在 Swift/OSX 中制作一个基本的弹出菜单我需要弄清楚的是:

  • 如何向该菜单添加“三项”以上的内容
  • 无论在弹出窗口中选择什么,该信息都会发送一个整数值到另一个数字。

非常感谢您的帮助,谢谢。

最佳答案

NSPopupButton 是一堆 NSMenuItem 对象的容器,因此您可以使用它来添加项目

func addItemWithTitle(_ title: String!)

NSMenuItem 通过调用为您构建。

你可能希望从头开始,你可以使用

func removeAllItems()

从按钮中清除现有项目。

also other methods围绕从按钮移动和删除菜单项。

NSPopupButton 是一个 NSControl,因此您可以使用 var action: Selector 来设置选择项目时发送的操作,并且 var target: AnyObject! 来控制哪个对象接收消息。或者只是在 Interface Builder 中连接它。

protocol FooViewDelegate{
func itemWithIndexWasSelected(value:Int)
}

class FooViewController: NSViewController {

@IBOutlet weak var myPopupButton: NSPopUpButton!
var delegate: FooViewDelegate?

let allTheThings = ["Mother", "Custard", "Axe", "Cactus"]

override func viewDidLoad() {
super.viewDidLoad()
buildMyButton()
}

func buildMyButton() {
myPopupButton.removeAllItems()

myPopupButton.addItemsWithTitles(allTheThings)
myPopupButton.target = self
myPopupButton.action = "myPopUpButtonWasSelected:"

}

@IBAction func myPopUpButtonWasSelected(sender:AnyObject) {

if let menuItem = sender as? NSMenuItem, mindex = find(allTheThings, menuItem.title) {
self.delegate?.itemWithIndexWasSelected(mindex)
}
}


}

所有按钮构造都可以在 Interface Builder 中完成,而不是代码。请记住,您可以使用 CMD-D 复制项目,或者您可以将新的 NSMenuItem 对象拖到按钮中。

关于macos - Xcode_OSX/Swift_NSPopUpButton。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30421997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com