gpt4 book ai didi

ios - 使用swift从textview中选择文本后显示副本

转载 作者:搜寻专家 更新时间:2023-11-01 07:08:33 25 4
gpt4 key购买 nike

enter image description here

使用此代码,它将向我显示:复制、选择、全选并粘贴。

但是我想先选择并全选,当用户点击选择然后复制会显示,当点击复制然后粘贴会显示。

class CustomTextField: UITextView
{
override public func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool
{

if action == #selector(select(_:)) || action == #selector(copy(_:)) || action == #selector(selectAll(_:)) || action == #selector(paste(_:))
{
return true
}
return false
}
}

最佳答案

你需要这样的东西,它唯一的状态问题,如果你的 currentState 是一个你应该在菜单中显示一些东西,你还需要重写这些方法中的每一个来改变当前状态

import UIKit

enum MenuState{
case select
case copy
case paste
}

class CustomTextField: UITextField {

var currentState : MenuState = .select

override public func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool
{
switch self.currentState {
case .select:
if action == #selector(select(_:)) || action == #selector(selectAll(_:)){
return true
}
case .copy:
if action == #selector(copy(_:)){
return true
}
case .paste:
if action == #selector(paste(_:)){
return true
}
}
return false
}

override func select(_ sender: Any?) {
super.select(sender)
self.currentState = .copy
}

override func selectAll(_ sender: Any?) {
super.selectAll(sender)
self.currentState = .copy
}

override func copy(_ sender: Any?) {
super.copy(sender)
self.currentState = .paste
}

override func paste(_ sender: Any?) {
super.paste(sender)
self.currentState = .select
}

}

关于ios - 使用swift从textview中选择文本后显示副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46499551/

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