每个人,我想知道在iOS中是否有办法编辑一些单词,而不是全部通过键盘编辑。
您是否认为使用NSMutableDictionary
NSStrings
的{{1}}键可以指示它们是否可编辑,将它们显示在UILabel
上?然后,当我按下一个键(例如,退格键)时,我更新标签并删除最后一个字符,当且仅当它是可编辑的时。
你有更好的想法吗?
答案 0 :(得分:1)
UITextField为您提供此功能。将viewController设置为textField的委托(在storyboard中通过控件单击最左边的图标并选择“delegate”或使用行self.textField.delegate = self
。确保在{{{}}中声明viewController是一个UITextField委托。 1}}。
您可以从那里UITextFieldDelegate实施@interface
。检查范围中的字符,看看它们是否是您希望被编辑的字符。如果不是,- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
则为return NO
。
您无法编辑UILabel,因此您应该使用UITextField来实现此类行为。
答案 1 :(得分:0)
UILabel
有只读文字。我认为您需要一个UITextField
,您可以使用它的委托(UITextFieldDelegate
)来管理文本编辑。您可以使用字典,但我认为包含所有可编辑字符的NSCharacterSet
更适合。
会是这样的:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString* string= [textField.text substringWithRange: range];
return [string rangeOfCharacterFromSet: self.nonEditableCharacterSet].location == NSNotFound;
}