- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 TextField 和一个按钮。此 TextField 最多可包含 3 个字母或数字。
这是我的问题。当程序运行时,如果这个文本字段为空或者如果这个文本字段不只包含数字,我希望我的按钮被禁用。你能帮我看看这段代码吗?
import UIKit
class ViewController: UIViewController, UITextFieldDelegate{
@IBOutlet var VizeGir: UITextField!
@IBOutlet var SonucLabel: UILabel!
@IBOutlet var SonucLabel2: UILabel!
@IBOutlet var SonucLabel3: UILabel!
@IBOutlet var SonucLabel4: UILabel!
@IBOutlet var SonucLabel5: UILabel!
@IBOutlet weak var Hes: UIButton!
@IBAction func Hesapla(sender: AnyObject) {
let vize = Float(VizeGir.text!)!
var final: Float
var vize2: Float
var sonuc: Float
var aa,ab,ba,bb,c:Int
if VizeGir.text!.isEmpty {
print("Nothing to see here")
}
if vize<0 || vize>100{
SonucLabel.text = "Yanlış değer girdiniz."
SonucLabel5.text = " "
SonucLabel4.text = " "
SonucLabel3.text = " "
SonucLabel2.text = " "
SonucLabel.textColor = UIColor(red: 255/255.0, green: 0/255.0, blue: 0/255.0, alpha: 1.0)
}else{
vize2 = (vize / 100) * 40
sonuc = 90
final = sonuc - vize2
aa = Int(final / 60 * 100)
if aa<50 || aa>100{
SonucLabel.text = "A1 Alamazsınız."
SonucLabel.textColor = UIColor(red: 255/255.0, green: 0/255.0, blue: 0/255.0, alpha: 1.0)
}else{
SonucLabel.text = "A1 almanız için gereken not: \(aa)"
SonucLabel.textColor = UIColor(red: 46/255.0, green: 204/255.0, blue: 113/255.0, alpha: 1.0)}
sonuc = 80
final = sonuc - vize2
ab = Int(final / 60 * 100)
if ab<50 || ab>100{
SonucLabel2.text = "A2 Alamazsınız."
SonucLabel2.textColor = UIColor(red: 255/255.0, green: 0/255.0, blue: 0/255.0, alpha: 1.0)
}else{
SonucLabel2.text = "A2 almanız için gereken not: \(ab)"
SonucLabel2.textColor = UIColor(red: 46/255.0, green: 204/255.0, blue: 113/255.0, alpha: 1.0)
}
sonuc = 70
final = sonuc - vize2
ba = Int(final / 60 * 100)
if ba<50 || ba>100{
SonucLabel3.text = "B1 Alamazsınız."
SonucLabel3.textColor = UIColor(red: 255/255.0, green: 0/255.0, blue: 0/255.0, alpha: 1.0)
}else{
SonucLabel3.text = "B1 almanız için gereken not: \(ba)"
SonucLabel3.textColor = UIColor(red: 46/255.0, green: 204/255.0, blue: 113/255.0, alpha: 1.0)
}
sonuc = 65
final = sonuc - vize2
bb = Int(final / 60 * 100)
if vize == 98 || vize == 97 || vize == 96 || vize == 95 || vize == 94 || vize == 93 || vize == 92 || vize == 91 || vize == 90 || vize == 89 || vize == 88 || vize == 87 {
SonucLabel4.text = "B2 almanız için gereken not: 50"
SonucLabel4.textColor = UIColor(red: 46/255.0, green: 204/255.0, blue: 113/255.0, alpha: 1.0)
}else if vize == 12{
SonucLabel4.text = "B1 almanız için gereken not: 100"
SonucLabel4.textColor = UIColor(red: 46/255.0, green: 204/255.0, blue: 113/255.0, alpha: 1.0)}
else if bb<=50 || bb>=100 {
SonucLabel4.text = "B2 Alamazsınız."
SonucLabel4.textColor = UIColor(red: 255/255.0, green: 0/255.0, blue: 0/255.0, alpha: 1.0)}
else{
SonucLabel4.text = "B2 almanız için gereken not: \(bb)"
SonucLabel4.textColor = UIColor(red: 46/255.0, green: 204/255.0, blue: 113/255.0, alpha: 1.0)
}
sonuc = 60
final = sonuc - vize2
c = Int(final / 60 * 100)
if vize==86 || vize==85 || vize==84 || vize==83 || vize==82 || vize==81 || vize==80 || vize==79 || vize==78 || vize==77 || vize==76{
SonucLabel5.text = "C almanız için gereken not: 50"
SonucLabel5.textColor = UIColor(red: 46/255.0, green: 204/255.0, blue: 113/255.0, alpha: 1.0)
}
else if c<50 || c>100{
SonucLabel5.text = "C alamazsınız."
SonucLabel5.textColor = UIColor(red: 255/255.0, green: 0/255.0, blue: 0/255.0, alpha: 1.0)
}
else{
SonucLabel5.text = "C almanız için gereken not: \(c)"
SonucLabel5.textColor = UIColor(red: 46/255.0, green: 204/255.0, blue: 113/255.0, alpha: 1.0)
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
VizeGir.delegate = self
}
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange,
replacementString string: String) -> Bool
{
let maxLength = 3
let currentString: NSString = VizeGir.text!
let newString: NSString =
currentString.stringByReplacingCharactersInRange(range, withString: string)
return newString.length <= maxLength
}
func initializeTextFields() {
VizeGir.delegate = self
VizeGir.keyboardType = UIKeyboardType.NumberPad
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
最佳答案
您需要在每次向 textField 输入字符时检查该字符串包含哪些字符以及它是否包含任何字符。
带注释的完整代码:
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var buttonOk: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func textField_EditingChanged(sender: UITextField) {
// Check the length
if sender.text?.characters.count == 0{
buttonOk.enabled = false
}
else{
buttonOk.enabled = true
}
// Check if numeric or not
if let number = Int(sender.text!)
{
print("Number")
buttonOk.enabled = true
}
else
{
print("Not number")
buttonOk.enabled = false
}
}
}
关于ios - 如何在程序运行时禁用(停用)按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35975746/
IO 设备如何知道属于它的内存中的值在memory mapped IO 中发生了变化? ? 例如,假设内存地址 0 专用于保存 VGA 设备的背景颜色。当我们更改 memory[0] 中的值时,VGA
我目前正在开发一个使用Facebook sdk登录(通过FBLoginView)的iOS应用。 一切正常,除了那些拥有较旧版本的facebook的人。 当他们按下“使用Facebook登录”按钮时,他
假设我有: this - is an - example - with some - dashesNSRange将使用`rangeOfString:@“-”拾取“-”的第一个实例,但是如果我只想要最后
Card.io SDK提供以下详细信息: 卡号,有效期,月份,年份,CVV和邮政编码。 如何从此SDK获取国家名称。 - (void)userDidProvideCreditCardInfo:(Car
iOS 应用程序如何从网络服务下载图片并在安装过程中将它们安装到用户的 iOS 设备上?可能吗? 最佳答案 您无法控制应用在用户设备上的安装,因此无法在安装过程中下载其他数据。 只需在安装后首次启动应
我曾经开发过一款企业版 iOS 产品,我们公司曾将其出售给大型企业,供他们的员工使用。 该应用程序通过 AppStore 提供,企业用户获得了公司特定的配置文件(包含应用程序配置文件)以启用他们有权使
我正在尝试将 Card.io SDK 集成到我的 iOS 应用程序中。我想为 CardIO ui 做一个简单的本地化,如更改取消按钮标题或“在此保留信用卡”提示文本。 我在 github 上找到了这个
我正在使用 CardIOView 和 CardIOViewDelegate 类,没有可以设置为 YES 的 BOOL 来扫描 collectCardholderName。我可以看到它在 CardIOP
我有一个集成了通话工具包的 voip 应用程序。每次我从我的 voip 应用程序调用时,都会在 native 电话应用程序中创建一个新的最近通话记录。我在 voip 应用程序中也有自定义联系人(电话应
iOS 应用程序如何知道应用程序打开时屏幕上是否已经有键盘?应用程序运行后,它可以接收键盘显示/隐藏通知。但是,如果应用程序在分屏模式下作为辅助应用程序打开,而主应用程序已经显示键盘,则辅助应用程序不
我在模拟器中收到以下错误: ImageIO: CGImageReadSessionGetCachedImageBlockData *** CGImageReadSessionGetCachedIm
如 Apple 文档所示,可以通过 EAAccessory Framework 与经过认证的配件(由 Apple 认证)进行通信。但是我有点困惑,因为一些帖子告诉我它也可以通过 CoreBluetoo
尽管现在的调试器已经很不错了,但有时找出应用程序中正在发生的事情的最好方法仍然是古老的 NSLog。当您连接到计算机时,这样做很容易; Xcode 会帮助弹出日志查看器面板,然后就可以了。当您不在办公
在我的 iOS 应用程序中,我定义了一些兴趣点。其中一些有一个 Kontakt.io 信标的名称,它绑定(bind)到一个特定的 PoI(我的意思是通常贴在信标标签上的名称)。现在我想在附近发现信标,
我正在为警报提示创建一个 trigger.io 插件。尝试从警报提示返回数据。这是我的代码: // Prompt + (void)show_prompt:(ForgeTask*)task{
您好,我是 Apple iOS 的新手。我阅读并搜索了很多关于推送通知的文章,但我没有发现任何关于 APNS 从 io4 到 ios 6 的新更新的信息。任何人都可以向我提供 APNS 如何在 ios
UITabBar 的高度似乎在 iOS 7 和 8/9/10/11 之间发生了变化。我发布这个问题是为了让其他人轻松找到答案。 那么:在 iPhone 和 iPad 上的 iOS 8/9/10/11
我想我可以针对不同的 iOS 版本使用不同的 Storyboard。 由于 UI 的差异,我将创建下一个 Storyboard: Main_iPhone.storyboard Main_iPad.st
我正在写一些东西,我将使用设备的 iTunes 库中的一部分音轨来覆盖 2 个视频的组合,例如: AVMutableComposition* mixComposition = [[AVMutableC
我创建了一个简单的 iOS 程序,可以顺利编译并在 iPad 模拟器上运行良好。当我告诉 XCode 4 使用我连接的 iPad 设备时,无法编译相同的程序。问题似乎是当我尝试使用附加的 iPad 时
我是一名优秀的程序员,十分优秀!