我正在尝试显示一个 UimenuController,但我无法查看它。我该怎么办?
let MenuController: UIMenuController = UIMenuController.sharedMenuController()
MenuController.menuVisible = true
MenuController.arrowDirection = UIMenuControllerArrowDirection.Down
MenuController.setTargetRect(CGRectMake(100, 80, 50, 50), inView: self.view)
let MenuItem_1: UIMenuItem = UIMenuItem(title: "Menu", action: "delete:")
let MenuItems: NSArray = [delete]
MenuController.menuItems = MenuItems
最佳答案
为了实际显示菜单,您需要执行以下操作:
- 在获得 sharedMenuController 之前调用 becomeFirstResponder()
- 最后调用 menu.setMenuVisible(true, animated: true)
- 重写 canBecomeFirstResponder 函数
- 覆盖 canPerformAction 函数
- 为选择器编写函数
举个例子
func someFunc() {
becomeFirstResponder()
var menu = UIMenuController.sharedMenuController()
var deleteItem = UIMenuItem(title: "Delete me", action: Selector("deleteLine"))
menu.menuItems = [deleteItem]
menu.setTargetRect(CGRectMake(100, 80, 50, 50), inView: self)
menu.setMenuVisible(true, animated: true)
}
func deleteLine() {
//Do something here
}
override func canBecomeFirstResponder() -> Bool {
return true
}
override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
// You need to only return true for the actions you want, otherwise you get the whole range of
// iOS actions. You can see this by just removing the if statement here.
if action == Selector("deleteLine") {
return true
}
return false
}
关于xcode - Swift- 设置可见菜单 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26272792/