使用在 UITextField 中输入的值 [重复]
Posted
技术标签:
【中文标题】使用在 UITextField 中输入的值 [重复]【英文标题】:Use value entered in UITextField [duplicate] 【发布时间】:2016-06-26 17:45:29 【问题描述】:如何通过文本字段从用户那里获取输入值,然后使用它在 Swift 中执行数学函数?
我想从用户那里得到一个值,然后找到那个值的正弦值。 另外,我想接受输入并将其转换为弧度。 请帮忙。
【问题讨论】:
通过获取文本,可选地创建一个 int 或 double 或其他任何内容,然后将sin
应用于它。问题出在哪里?
其实我是个初学者,你能给我一些示例代码吗?
就像有一个按钮,文本字段和一个标签,所以用户在文本字段中输入一个数字按下按钮,它的罪孽显示在标签上
您的文本字段是使用情节提要添加的吗?它是否已经链接到您的视图控制器(作为出口)?通过向我们展示您已经完成的工作,这将对我们有很大帮助,因此我们可以从那里为您提供帮助。
我有一个用于标签和文本字段的 iboutlet
【参考方案1】:
根据您的评论,您将文本字段作为 IBOutlet。我添加了一个按钮来获取值:
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var label: UILabel!
@IBAction func buttonPress(sender: AnyObject)
guard let text = textField.text, value = Double(text) else return
label.text = String(sin(value))
我使用guard
的原因是因为如果文本是nil
或者不是Double
,它将只是return
,什么都不做(这是我想要的)。这样,您在尝试计算值时就不必担心意外崩溃。
【讨论】:
非常感谢尝试一下 是否以弧度或度数为单位进行评估【参考方案2】:let sinValue = sin(Double("2")!)
是如何将字符串处理为 sin 值
要从文本字段中获取文本,您需要以下内容:
let sinValue = sin(Double(someTextField.text)!)
但您首先要检查文本字段是否有值并验证它是否为数字以防止崩溃。
【讨论】:
感谢试一试... 现在知道如何在标签上显示它 someLabel.text = "(sinValue)"【参考方案3】://Initialize Textfied
var textField = UITextField(frame: CGRect(0, 0, 100, 100))
var sinNumber:Double = 0
//Now in your header (where it says class X:subclass list)
//maybe something like class Viewcontroller:UIViewController, UITextFieldDelegate
如上添加 UITextFieldDelegate 然后你需要添加以下函数来确定用户何时完成编辑他们的 TextField
func textFieldDidEndEditing(textField: UITextField)
sinNumber = getSinOfInput(textField.text)
func getSinOfNumber(numbers:String)
//If numbers is NOT a string full of numbers (it has characters), it should return nil
var num = Double(numbers)
if num != nil
//Do login here to find the sin
num = ....
return num
else
return 0
【讨论】:
以上是关于使用在 UITextField 中输入的值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
通过循环遍历 UITextField 中的值模式来测试应用程序
在自定义 UITableViewCell UITextField 中输入的值转换为其他字段