【问题标题】:How to resign keyboard in iOS如何在 iOS 中退出键盘
【发布时间】:2016-10-29 21:39:31
【问题描述】:

我做了一个小程序,用来计算工作中保险箱里的钱,但是在更新我的 iPhone 后,它就不再工作了。

经过大量阅读等我修复了所有问题,但我还没有找到新的方法来退出键盘。

在更新之前我用这个:

@IBAction func resignKeyboard(_sender: AnyObject) {
    _sender.resignFirstResponder()
}

这不再起作用了,所以我会喜欢一种新的方法。我已经搜索了很多解决方案,但我没有理解我找到的任何解决方案。所以请尽量简化你的答案。

这是我程序中“ViewController.Swift”中的所有内容:

//
//  ViewController.swift
//  Pengeskabstæller
//
//  Created by Alex on 09/07/2016.
//  Copyright © 2016 Alex. All rights reserved.
//

import UIKit


class ViewController: UIViewController, UITextFieldDelegate {

@IBOutlet weak var In50B: UITextField!
@IBOutlet weak var In50L: UITextField!
@IBOutlet weak var In20B: UITextField!
@IBOutlet weak var In20L: UITextField!
@IBOutlet weak var In10B: UITextField!
@IBOutlet weak var In10L: UITextField!
@IBOutlet weak var In5B: UITextField!
@IBOutlet weak var In5L: UITextField!
@IBOutlet weak var In2B: UITextField!
@IBOutlet weak var In2L: UITextField!
@IBOutlet weak var In1B: UITextField!
@IBOutlet weak var In1L: UITextField!
@IBOutlet weak var In05B: UITextField!
@IBOutlet weak var In05L: UITextField!
@IBOutlet weak var Ialt: UILabel!


@IBAction func resignKeyboard(_sender: AnyObject) {
    _sender.resignFirstResponder()
}
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a     nib.

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

@IBAction func Knap(sender: AnyObject) {
    //Hvad knappen gør

    //Ganger input ved værdi af bundt eller løse
    var x50B: Int = Int(In50B.text!)!
    x50B = x50B*5000
    var x50L:Int = Int(In50L.text!)!
    x50L = x50L*500
    var x20B:Int = Int(In20B.text!)!
    x20B = x20B*4000
    var x20L:Int = Int(In20L.text!)!
    x20L = x20L*400
    var x10B:Int = Int(In10B.text!)!
    x10B = x10B*2000
    var x10L:Int = Int(In10L.text!)!
    x10L = x10L*200
    var x5B:Int = Int(In5B.text!)!
    x5B = x5B*1000
    var x5L:Int = Int(In5L.text!)!
    x5L = x5L*200
    var x2B:Int = Int(In2B.text!)!
    x2B = x2B*500
    var x2L:Int = Int(In2L.text!)!
    x2L = x2L*50
    var x1B:Int = Int(In1B.text!)!
    x1B = x1B*500
    var x1L:Int = Int(In1L.text!)!
    x1L = x1L*50
    var x05B:Int = Int(In05B.text!)!
    x05B = x05B*200
    var x05L:Int = Int(In05L.text!)!
    x05L = x05L*20

    //Lægger det hele sammen

    let penge1 = (x50B + x50L + x20B)
    let penge2 = (x20L + x10B + x10L)
    let penge3 = (x5B + x5L + x2B + x2L)
    let penge4 = (x1B + x1L + x05B + x05L)
    let penge99 = String(penge1+penge2+penge3+penge4)

    //Printer ialt
    Ialt.text = penge99
}

}     

【问题讨论】:

    标签: ios keyboard swift3 ios10 resignfirstresponder


    【解决方案1】:

    我认为这是一个更好的方法,而不是添加一个插座。

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        view.endEditing(true)
    }
    

    希望对你有帮助!

    【讨论】:

    • 完美运行!但是我遇到了下一个问题,当我按下激活应用程序最后一点的按钮时它崩溃了。
    • 是在你添加这段代码之后发生的吗?那没有多大意义。还是完全是另外一回事?
    • 不,问题是在 swift 2 和 3 之间发生了变化。我在这里修好了stackoverflow.com/questions/40324555/…
    【解决方案2】:

    假设所有的textFields都是view的子视图,你可以像这样使用endEditing方法:

    @IBAction func resignKeyboard() {
        view.endEditing(true)
    }
    

    【讨论】:

      【解决方案3】:

      尝试将发件人更改为UITextField而不是AnyObject,然后你可以这样做sender.resignFirstResponder()

      【讨论】:

        猜你喜欢
        • 2021-01-21
        • 1970-01-01
        • 2011-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-12
        • 2016-04-13
        相关资源
        最近更新 更多