您使用Int返回文本字段,並在用戶按下某個鍵時修改Int。然後,將格式化的Int顯示爲文本。這裏是一個遊樂場的例子:
import PlaygroundSupport
import UIKit
class ViewController: UIViewController {
var textField = UITextField(frame: CGRect(x: 0, y: 0, width: 100, height: 20))
var number = 0
override func viewDidLoad() {
super.viewDidLoad()
textField.backgroundColor = .white
textField.keyboardType = .numberPad
textField.delegate = self
view.addSubview(textField)
}
}
extension ViewController: UITextFieldDelegate {
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
switch string {
case "0","1","2","3","4","5","6","7","8","9":
guard number < Int32.max/100 else {
return false
}
number *= 10
number += Int(string)!
case "":
number /= 10
default:
break
}
let formatter = NumberFormatter()
formatter.decimalSeparator = ":"
formatter.minimumIntegerDigits = 1
formatter.minimumFractionDigits = 2
textField.text = formatter.string(from: NSNumber(value: Double(number)/100.0))
return false
}
}
let v = ViewController()
PlaygroundPage.current.liveView = v.view
你嘗試了什麼?請顯示一些代碼... –
我試過這個,但很多錯誤,並不完全是我想要的:https://stackoverflow.com/a/34239761/7842955 – Loctor
它只是邏輯。閱讀最不重要的秒爲秒和最重要的數字爲小時。將其保留爲一個字符串並將其轉換爲秒數 – ahmed