How to disable pasting in a TextField in Swift?

后端 未结 14 1451
予麋鹿
予麋鹿 2020-11-30 03:41

I\'ve got a TextField with a numberPad and the function runs only if it contains numbers.

The user will crash the app if they paste letters

14条回答
  •  北海茫月
    2020-11-30 04:20

    class CustomUITextField: UITextField {
        override public func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
            if action == #selector(cut(_:)) ||
               action == #selector(copy(_:)) ||  
               action == #selector(UIResponderStandardEditActions.paste(_:)) || 
               action == #selector(UIResponderStandardEditActions.select(_:)) || 
               action == #selector(UIResponderStandardEditActions.selectAll(_:)) || 
               action == #selector(UIResponderStandardEditActions.delete(_:)) ||  
               action == #selector(UIResponderStandardEditActions.makeTextWritingDirectionLeftToRight(_:)) ||  
               action == #selector(UIResponderStandardEditActions.makeTextWritingDirectionRightToLeft(_:)) || 
               action == #selector(UIResponderStandardEditActions.toggleBoldface(_:)) || 
               action == #selector(UIResponderStandardEditActions.toggleItalics(_:)) || 
               action == #selector(UIResponderStandardEditActions.toggleUnderline(_:)) || 
               action == #selector(UIResponderStandardEditActions.increaseSize(_:)) || 
               action == #selector(UIResponderStandardEditActions.decreaseSize(_:)) 
            {
                 return false
            };
            return true
        }
    }
    

提交回复
热议问题