2015-10-13 192 views
1

我在UITextField的子类中使用textFieldDidChangetextFieldDidEndEditing方法时出现问题。我在另一个源(对象)中更改UITextFieldtext属性。可以调用这个方法吗?iOS 9 Swift 2.0 UITextFieldDidChange

回答

3

您可以使用下面的代码,你可以按照吹描述

的UITextField并拖动“编辑而改变”发送事件的子单元。

UITextField Change Event

,或者您可以使用委托方法

func textField(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementString string: String!) -> Bool 

或progrmatically

yourtextField.addTarget(self, action: "textFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged) 

func textFieldDidChange(textField: UITextField) 
{ 
    //your code 
} 

或通知,请在Swift 2.0

let notificationCenter = NSNotificationCenter.defaultCenter() 
notificationCenter.addObserver(
self, 
selector: "textFieldTextChanged:", 
name:UITextFieldTextDidChangeNotification, 
object: nil 
) 

func textFieldTextChanged(sender : AnyObject) { 
    // do your stuff here 
} 

通知类型为

公共让利UITextFieldTextDidBeginEditingNotification:字符串 公设UITextFieldTextDidEndEditingNotification:字符串 公设UITextFieldTextDidChangeNotification:字符串

更多信息,使用此link

+0

我需要有'textFieldDidChange当我改变另一个对象的UITextField的值时调用'或'textFieldDidEndEditing'。可以这样做吗? –

+0

在同一个类中,你可以使用** textFieldDidEndEditing **,如果你是另一个对象发送观察者,你可以使用** UITextFieldTextDidChangeNotification **作为 –

+0

@CodyWeaver - 检查更新的答案 –