【问题标题】:Making UITextView's row non editable and moving the cursor on the next line thereof使 UITextView 的行不可编辑并将光标移动到其下一行
【发布时间】:2013-02-07 10:57:50
【问题描述】:

我一直面临一个问题,我希望 UITextView 的行以及它们占据的行数不可编辑。 单击文本字段时,它应该从下一行开始编辑,例如,如果前两行预先填充了一些文本,我希望光标在第三行,而 UItextView 的前两行不可编辑。

我一直在尝试各种解决方案,但最有可能的是

How to set cursor position for non editable UITextView?

但令人震惊!它没有帮助.. 任何进一步的帮助将不胜感激..

谢谢!!

【问题讨论】:

  • 假设您的文本字段是表示排序列表,您可能最好使用表格来实现您想要的。表格可以列出您不可编辑的项目,您可以添加一些 UI 以添加到表格中。 @Vishall,治愈男孩,治愈!
  • 不,在这种情况下我不能使用 tableview。如果预填充的字符串太长,它可能是两行左右,具体取决于它的长度。
  • @AppleDelegate,您需要多考虑一下。表格行可以调整大小以适合文本。见tableView:heightForRowAtIndexPath:。 @Vishal,保持专业的“老兄”。
  • 对不起@AppleDelegate,Jeremy & Rushi....
  • 好吧,这似乎是一种进行排序的方法。不能使用 UITextView 的代表来完成,例如 shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text,我实际上正在尝试使用 ..

标签: iphone objective-c xcode uitextview


【解决方案1】:

这是我找到的解决方案,

- (BOOL)textView:(UITextView *)txtView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{

    //Check for back space character with @""
    if ([text isEqualToString:@""])
    {
        //Check for the final character in the text view if its a new line character
        if ([txtView.text hasSuffix:@"\n"]) {
            NSLog(@"Yes I have it");
            return NO;
        }
    }
    return YES;
}

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多