Ios 使用Rubymotion在UITextField中设置电话号码格式

Ios 使用Rubymotion在UITextField中设置电话号码格式,ios,iphone,ruby,rubymotion,Ios,Iphone,Ruby,Rubymotion,我正在使用RubyMoon创建一个iOS应用程序。我有一个表单,我正在尝试格式化UITextField。我知道我需要使用UITextFieldDelegate,并且该功能正在工作,但是我的格式设置没有正确设置字段的格式。请看下面我的代码 def textField(textField, shouldChangeCharactersInRange: range, replacementString: string) if textField == @phone location = r

我正在使用RubyMoon创建一个iOS应用程序。我有一个表单,我正在尝试格式化UITextField。我知道我需要使用UITextFieldDelegate,并且该功能正在工作,但是我的格式设置没有正确设置字段的格式。请看下面我的代码

def textField(textField, shouldChangeCharactersInRange: range, replacementString: string)
  if textField == @phone
    location = range.location

    case location


    when 0..2
     p location

    when 3
     newString = NSString.stringWithFormat("(%)", @phone.text )
     @phone.text = newString


  end
end

结束

如果您只是尝试在字符串周围放置's,那么这将起作用:

@phone.text = "(#{@phone.text})"
或者您可以这样做:

NSString.stringWithFormat("(%@)", @phone.text )
您可以在此处查看格式化程序:


第一个示例只是一个插值字符串。

开关是否变为3?是否有任何错误?请尝试在每种情况下记录字符串NSLog%@,@phone.text切换到3。没有任何错误,当我查看日志时,它会在我工作时打印到控制台,并显示格式,但其中没有数据,即.NSString.stringWithFormat%@,@phone.text可能会执行此操作。willrax,当我执行此操作时,它会将其格式化为空。这至少会在其中抛出一个空值,但仍然不是正确的数据。