作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试限制 3 个不同的文本字段,以便您只能在其中输入数字,这样您可以输入的位数就会受到限制。
这是我的代码:
import Foundation
import UIKit
import Darwin
class View3on3 : UIViewController, UITextFieldDelegate {
@IBOutlet weak var APTeams: UITextField!
@IBOutlet weak var APRounds: UITextField!
@IBOutlet weak var APBreakers: UITextField!
override func viewDidLoad()
{
super.viewDidLoad()
initializeTextFields()
}
func initializeTextFields()
{
APTeams.delegate = self
APTeams.keyboardType = UIKeyboardType.NumberPad
APRounds.delegate = self
APRounds.keyboardType = UIKeyboardType.NumberPad
APBreakers.delegate = self
APBreakers.keyboardType = UIKeyboardType.NumberPad
}
override func didReceiveMemoryWarning()
{
super.didReceiveMemoryWarning()
}
@IBAction func userTappedBackground(sender: AnyObject)
{
view.endEditing(true)
}
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
{
if string.characters.count == 0 {
return true
}
let prospectiveText = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: String())
switch textField {
case APTeams:
return prospectiveText.containsOnlyCharactersIn("0123456789") && count(prospectiveText) <= 3
case APRounds:
return prospectiveText.containsOnlyCharactersIn("0123456789") && count(prospectiveText) <= 1
case APBreakers:
return prospectiveText.containsOnlyCharactersIn("0123456789") && count(prospectiveText) <= 3
default:
return true
}
}
}
它在这一行抛出一个错误:
let prospectiveText = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: String())
这么说'字符串?'不可转换为 NSString
我做错了什么?
附言。调用 NumberPad 的代码工作正常。当我删除代码以限制位数时,它工作正常。
最佳答案
或者你可以试一试,创建一个方法并在加载 View 中调用它:
func initializeTextFields({
digitsOnlyTextField.delegate = self
digitsOnlyTextField.keyboardType = UIKeyboardType.ASCIICapable
然后,您可以像这样硬编码您的文本字段:
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String)
-> Bool {
case digitsOnlyTextField:
return prospectiveText.containsOnlyCharactersIn("012346789")
试一试并给我一些反馈,祝你好运!
关于ios - 将 textField 条目限制为设定长度的数字条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31552674/
我想成为 Spark 纱客户(link)。是否需要安装hadoop?还是只安装 yarn 可以吗? (by this link) 最佳答案 No Spark不需要Hadoop即可运行。 Apache
我是一名优秀的程序员,十分优秀!