Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我应该使用UILabel吗?_Ios_Objective C_Cocoa Touch_Uilabel_Uitextview - Fatal编程技术网

Ios 我应该使用UILabel吗?

Ios 我应该使用UILabel吗?,ios,objective-c,cocoa-touch,uilabel,uitextview,Ios,Objective C,Cocoa Touch,Uilabel,Uitextview,各位,我想知道在iOS中是否有一种方法可以只编辑一些单词,而不是全部通过键盘编辑。 您认为使用NSStrings的NSMutableDictionary和指示它们是否可编辑的键,将它们显示在UILabel上会更好吗?然后,当我按下一个键(例如,backspace)时,我更新标签并删除最后一个字符(如果且仅当它是可编辑的)。 您有更好的想法吗?UITextField为您提供了此功能。将viewController设置为文本字段的代理(在故事板中,通过控制单击最左边的图标并选择“代理”或使用线sel

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

您有更好的想法吗?

UITextField为您提供了此功能。将viewController设置为文本字段的代理(在故事板中,通过控制单击最左边的图标并选择“代理”或使用线
self.textField.delegate=self
。确保在
@界面中声明viewController是UITextField代理

在此基础上,您可以实现
-(BOOL)textField:(UITextField*)textField shouldChangeCharactersRange:(NSRange)range replacementString:(NSString*)string
from。检查范围内的字符,查看它们是否是您希望编辑的字符。如果不是,则
返回否
否则
返回是


您无法编辑UILabels,因此应该使用UITextField进行此类行为。

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;
}

非常感谢!我可以为“UITextField”创建自定义光标吗?非常感谢!我可以为“UITextField”创建自定义光标吗?您所说的“自定义光标”是什么意思?你的意思是要将UITextField子类化?我希望有一个类似终端应用程序中的光标:绿色和厚实。在iOS 7中,我可以更改光标的颜色吗?为此,我认为你最好使用UIScrollView。你能解释一下吗?