我试图在UILabel中复制内容但没有隐藏键盘,问题是当我在标签中显示复制菜单时,标签成为第一响应者并且键盘辞职,但我想这样做而不隐藏键盘,有没有办法做到这一点?
答案 0 :(得分:4)
UILabel
无法实现。
您应该使用UITextField
。只需禁用编辑。
答案 1 :(得分:3)
AFAIK,你做不到。但我认为你可以解决这个问题。不是不隐藏键盘,为什么不跟踪当前活动的文本字段,然后在用户按下copy
后激活它。您可以使用UIPasteboardChangedNotification
了解用户何时按下copy
。例如:
self.lastActiveTextField = aTextField
-(void)pasteBoardDidChange:(NSNotification*)notif
{
[self.lastActiveTextField becomeFirstResponder];
}
答案 2 :(得分:0)
答案 3 :(得分:0)
我认为,这是不可能的,任何时候都只能有一个第一响应者。如果由于另一个UI元素而显示键盘,那么当您尝试从UILabel复制内容时,操作系统必须将第一个响应者从其他元素传输到UILabel,因为UILabel不需要键盘,键盘将自动隐藏。因此,您必须更改元素以解决此问题,或使用可以解决问题的第三方UI元素。
答案 4 :(得分:-3)
每个UIView组件都有一个名为:canBecomeFirstResponder的方法。他是只读的,但您可以继承UI对象并覆盖getter:
- (BOOL)canBecomeFirstResponder {
return false;
}
我没有做过测试,但如果"成为第一响应者"是问题,应该解决它。