সম্পাদনা / আপডেট: এক্সকোড 11.4 • সুইফ্ট 5.2
কোড মাধ্যমে মন্তব্য চেক করুন
ইন্টিজারফিল্ড.সুইফ্ট ফাইল সামগ্রী:
import UIKit
class IntegerField: UITextField {
// returns the textfield contents, removes non digit characters and converts the result to an integer value
var value: Int { string.digits.integer ?? 0 }
var maxValue: Int = 999_999_999
private var lastValue: Int = 0
override func willMove(toSuperview newSuperview: UIView?) {
// adds a target to the textfield to monitor when the text changes
addTarget(self, action: #selector(editingChanged), for: .editingChanged)
// sets the keyboard type to digits only
keyboardType = .numberPad
// set the text alignment to right
textAlignment = .right
// sends an editingChanged action to force the textfield to be updated
sendActions(for: .editingChanged)
}
// deletes the last digit of the text field
override func deleteBackward() {
// note that the field text property default value is an empty string so force unwrap its value is safe
// note also that collection remove at requires a non empty collection which is true as well in this case so no need to check if the collection is not empty.
text!.remove(at: text!.index(before: text!.endIndex))
// sends an editingChanged action to force the textfield to be updated
sendActions(for: .editingChanged)
}
@objc func editingChanged() {
guard value <= maxValue else {
text = Formatter.decimal.string(for: lastValue)
return
}
// This will format the textfield respecting the user device locale and settings
text = Formatter.decimal.string(for: value)
print("Value:", value)
lastValue = value
}
}
আপনার প্রকল্পে আপনাকে সেই এক্সটেনশনগুলি যুক্ত করতে হবে:
এক্সটেনশনগুলি UITextField.swift ফাইল সামগ্রী:
import UIKit
extension UITextField {
var string: String { text ?? "" }
}
এক্সটেনশনগুলি ফর্ম্যাটর.সুইফ্ট ফাইল সামগ্রী:
import Foundation
extension Formatter {
static let decimal = NumberFormatter(numberStyle: .decimal)
}
এক্সটেনশানগুলি নাম্বার ফর্ম্যাটর.সুইফ্ট ফাইল সামগ্রী:
import Foundation
extension NumberFormatter {
convenience init(numberStyle: Style) {
self.init()
self.numberStyle = numberStyle
}
}
এক্সটেনশনগুলি স্ট্রিংপ্রোটোকল.সুইফ্ট ফাইল সামগ্রী:
extension StringProtocol where Self: RangeReplaceableCollection {
var digits: Self { filter(\.isWholeNumber) }
var integer: Int? { Int(self) }
}
নমুনা প্রকল্প
var answer1 = Int(txtBox1.text)