【问题标题】:iOS UITextfield focus when using the Magnifying Glass使用放大镜时的 iOS UITextfield 焦点
【发布时间】:2014-05-13 08:46:00
【问题描述】:

我想要的行为如下;使用不可编辑的文本字段,并且默认情况下能够滚动长文本 点击并按住放大镜,释放后,我想解除对同一文本字段的关注。

首先我说:

textfield.inputView = [[UIView alloc] initWithFrame:CGRectZero];

这会强制键盘不出现,但焦点仍在文本字段上。 我尝试通过更改 contentSize 来使用 textview 进行水平滚动,但没有成功。所以我需要任何有用的信息,你可以告诉我,如果你需要进一步的解释,我会澄清更多。

【问题讨论】:

  • 你为什么使用 textfield.inputView ?我没有明白它的目的..
  • 因为如果你不这样做,键盘会出现,你将能够更改文本字段的值。尝试一下,自己看看。

标签: ios iphone objective-c uitextfield


【解决方案1】:

像这里一样禁用键盘怎么样:

Disable UITextField keyboard?,

然后捕获所有输入的字符

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range
                  replacementString:(NSString *)string

函数,为每个条目返回NO。那应该做你想做的。

【讨论】:

  • 这种方式可以防止我输入字符,但我不希望出现键盘,我只希望用户在应该能够编辑的情况下滚动整个文本字段,也不显示键盘和之后滚动以失去对文本字段的关注。
  • 您是否阅读了关于禁用文本字段键盘的第一部分?
  • 是的,我试过了,但没有让我滚动阅读全文。
  • 刚刚尝试过(使用 UITextView) - 对我来说效果很好......没有键盘,并且可以滚动......
  • 也许与 (UITextView) 但我需要它用于 (UITextField) 尤其是水平滚动
【解决方案2】:

你的方法有问题 - 如果您使 UITextfield 不可编辑,它也不会进行会导致滚动的触摸。

我的建议 => 如果您想要滚动+不可编辑的字段,那么您可以这样做.. 使用 UILabel 作为你的文本,为了滚动效果你可以把这个标签放在 UIScrollview 为了放大效果,您可以从HERE 借用代码。并且您可以在 nay 视图上应用此放大倍率,这样您就可以在您的 UILabel 上使用它。这将满足您的所有要求。

希望对你有帮助!

【讨论】:

  • 感谢您的回复,我尝试了您的标签+滚动视图的方法,但我的意思是不可编辑是我无法修改它的内容,并使用文本字段来维护 iOS 行为,尤其是 2 点: 1. 长文本以最后3个点表示。 2.长按可以滚动,不用太在意放大镜本身。
猜你喜欢
  • 1970-01-01
  • 2011-04-26
  • 2011-04-08
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
  • 2010-11-04
  • 2016-09-23
  • 1970-01-01
相关资源
最近更新 更多