例如,请参见下面的代码。
UITextField * myTextField = [[UITextField alloc]init];
NSString * myString = myTextField.text; //Set as reference to string here
NSLog(@"%@", myString); //Should be null
[myTextField setText:@"foobar"];
NSLog(@"%@", myString); //Should be foobar
我期望当 myTextField 文本的值发生变化时,“myString”也会发生变化。
我知道另一种方法是设置 UITextField 委托(delegate)并检查“onChange”然后更改字符串,但我正在寻找是否有其他方法。
最佳答案
我不认为这是你想要的方式可行的。 text
UITextField
的属性(property)是 NSString
这是不可变的。当它改变时,一个新的NSString
对象被创建。除此之外,肯定还有其他事情在幕后使这成为不可能。
最简单的两种方法可能是
UITextFieldDelegate
正如你所说,并实现 textField:shouldChangeCharactersInRange:replacementString:
方法。 NSNotificationCenter
并观察 UITextFieldTextDidBeginEditingNotification
事件。确保在释放对象时将其作为观察者移除 关于ios - 无论如何将 NSString 设置为指向另一个字符串的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19144039/