-4

大家,我想知道在iOS中是否有一种方法可以只编辑一些单词,而不是全部通过键盘。
您认为将 a NSMutableDictionaryofNSStrings与指示它们是否可编辑的键一起使用是否会很好,将它们显示到 a 上UILabel?然后,当我按下一个键(例如,退格键)时,我更新标签并删除最后一个字符,当且仅当它是可编辑的。
你有更好的想法吗?

4

2 回答 2

1

UITextField 为您提供了这种能力。将 viewController 设置为 textField 的委托(在情节提要中通过控制单击最左边的图标并选择“委托”或使用 . 行self.textField.delegate = self。确保在@interface.

从那里你可以- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string UITextFieldDelegate实现。检查范围内的字符,看看它们是否是您希望被允许编辑的字符。如果不是,return NO否则return YES

你不能编辑 UILabel,所以你应该使用 UITextField 来处理这种行为。

于 2013-09-14T17:36:45.977 回答
0

UILabel有只读文本。我认为您需要一个UITextField,您可以使用它的委托 ( UITextFieldDelegate) 来管理文本编辑。您可以使用字典,但我认为NSCharacterSet包含所有可编辑字符的 a 更适合。

它会是这样的:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSString* string= [textField.text substringWithRange: range];
    return [string rangeOfCharacterFromSet: self.nonEditableCharacterSet].location == NSNotFound;
}
于 2013-09-14T17:37:36.257 回答