Macos Xcode_OSX/Swift_nspoupbutton。
我对这一点非常陌生,所以请记住这一点 我整晚都在这里,看了无数的视频/闹鬼 无数论坛…我找不到一个答案强> 我正在尝试在Swift/OSX中创建一个基本的弹出菜单,我需要弄清楚的是:Macos Xcode_OSX/Swift_nspoupbutton。,macos,swift,nspopupbutton,Macos,Swift,Nspopupbutton,我对这一点非常陌生,所以请记住这一点 我整晚都在这里,看了无数的视频/闹鬼 无数论坛…我找不到一个答案 我正在尝试在Swift/OSX中创建一个基本的弹出菜单,我需要弄清楚的是: 我怎样才能将“三项”以上的内容添加到此菜单中 无论在弹出窗口中选择什么,该信息都将发送一个整数 值转换为另一个数字 非常感谢您的帮助。一个nspoupbutton是一个容器,用于存放一堆NSMenuItem对象,以便添加您可以使用的项目 func addItemWithTitle(\utitle:String!)
- 我怎样才能将“三项”以上的内容添加到此菜单中
- 无论在弹出窗口中选择什么,该信息都将发送一个整数 值转换为另一个数字
非常感谢您的帮助。一个
nspoupbutton
是一个容器,用于存放一堆NSMenuItem
对象,以便添加您可以使用的项目
func addItemWithTitle(\utitle:String!)
调用将为您构建NSMenuItem
如果您希望从头开始,您可以使用
func removeAllItems()
从按钮中清除现有项目
从按钮上移动和删除菜单项有很多方法
nspoupbutton
是-ANSControl
,因此您可以使用var action:Selector
设置选中项目时发送的操作和var target:AnyObject
控制哪个对象接收消息。或者只需在界面生成器
中连接即可
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)
}
}
}
所有的按钮构造都可以在界面生成器中完成,而不是在代码中完成。请记住,您可以使用CMD-D
复制项目,也可以将新的NSMenuItem
对象拖动到按钮中