gpt4 book ai didi

ios - UIMenuController 未在 UICollectionViewController 子类上显示自定义操作

转载 作者:行者123 更新时间:2023-11-30 12:23:05 25 4
gpt4 key购买 nike

我试图在 UICollectionViewController 子类上使用 UIMenuController 显示自定义操作,即使剪切、复制和粘贴操作按预期显示,由于某种原因我的自定义操作则不然。

我在网上引用了很多引用资料,但没有一个能起作用,这里是代码:

class CollectionViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout {

fileprivate var items = [MyClass]()

// MARK: - UICollectionViewDataSource
override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return items.count
}

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellIdentifier", for: indexPath)
/* update cell properties */
return cell
}

// MARK: - UICollectionViewDelegate
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: itemSize, height: itemSize)
}

override func collectionView(_ collectionView: UICollectionView, canPerformAction action: Selector, forItemAt indexPath: IndexPath, withSender sender: Any?) -> Bool {
return true
}

override func collectionView(_ collectionView: UICollectionView, performAction action: Selector, forItemAt indexPath: IndexPath, withSender sender: Any?) {
/* Do Something */
}

override func collectionView(_ collectionView: UICollectionView, shouldShowMenuForItemAt indexPath: IndexPath) -> Bool {
return true
}

public func menuAction(_ sender: UIMenuItem) {
/* Action method*/
}
}

尝试添加菜单项如下:

        let menuItem = UIMenuItem(title: SFLocalization.localizedString("Common-remove"), action: #selector(CollectionViewController.menuAction(_:)))
let menuController = UIMenuController.shared
// menuController.menuItems?.append(menuItem)
menuController.menuItems = [menuItem]

viewDidLoadcollectionView(_ collectionView:, shouldShowMenuForItemAt) -> Bool

有什么想法吗?

最佳答案

奥马尔 - 查看此链接:http://dev.glide.me/2013/05/custom-item-in-uimenucontroller-of.html

基本上,移动这些方法:

  • (BOOL)canPerformAction:(SEL)action withSender:(id)sender{

  • (BOOL)canBecomeFirstResponder {

... CollectionView 单元子类有效。然后,您必须将此选择器传递回单元格委托(delegate)。

有了这个,我就可以显示我的自定义菜单了!

关于ios - UIMenuController 未在 UICollectionViewController 子类上显示自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44555803/

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