Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.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 如何使“编辑”菜单显示在带有contentEditable的UIWebView中?_Ios_Objective C_Uiwebview_Contenteditable - Fatal编程技术网

Ios 如何使“编辑”菜单显示在带有contentEditable的UIWebView中?

Ios 如何使“编辑”菜单显示在带有contentEditable的UIWebView中?,ios,objective-c,uiwebview,contenteditable,Ios,Objective C,Uiwebview,Contenteditable,我有一个带有嵌入式文本编辑器的iPad应用程序。编辑器是一个UIWebView,其contenteditable设置为true。表单还包含一个用于文档标题的简单文本字段 如果用户键入标题,然后点击Return,他们可以在WebView中输入文本,然后点击并按住以获得放大镜和编辑菜单 但是,如果用户输入标题,然后在web视图上点击,他们可以输入文本,点击并按住以获得放大镜,但编辑菜单永远不会出现 我能看到的唯一区别是,在第一种情况下,首先触发textfield应返回:方法,然后触发textfiel

我有一个带有嵌入式文本编辑器的iPad应用程序。编辑器是一个UIWebView,其
contenteditable
设置为
true
。表单还包含一个用于文档标题的简单文本字段

如果用户键入标题,然后点击Return,他们可以在WebView中输入文本,然后点击并按住以获得放大镜和编辑菜单

但是,如果用户输入标题,然后在web视图上点击,他们可以输入文本,点击并按住以获得放大镜,但编辑菜单永远不会出现

我能看到的唯一区别是,在第一种情况下,首先触发
textfield应返回:
方法,然后触发
textfielddendediting:
方法,而在第二种情况下,只有
textfielddendediting:
方法触发

以下是两种方法:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}


有人知道区别是什么吗?我如何才能显示编辑菜单?

我认为这是一个iOS 7错误,请尝试将以下代码添加到视图控制器中作为解决方法

- (void)viewDidLoad {
    [super viewDidLoad];
     self.edgesForExtendedLayout = UIRectEdgeNone;
     //Additional inicialization code.
}
请注意,属性在iOS 7或更高版本上可用。
希望这有帮助

这里也有同样的问题!:),有消息吗?我认为这是一个iOs错误,如果您在web视图中写入了多行,那么菜单项应该会出现。这仅在iOS 7中发生,菜单项在iOS 6I中显示正常。我可以确认,在iOS 7.1中,此解决方法解决了我的问题。只有在DOM文本区域中有多行文本时,菜单才会显示。这个问题似乎有一些额外的微妙之处,因为它也可以通过将文本元素移动到DOM中的另一个位置来解决。看起来菜单正在显示,但UIWebView进行了一些错误的放置计算,结果超出了框架。
- (void)viewDidLoad {
    [super viewDidLoad];
     self.edgesForExtendedLayout = UIRectEdgeNone;
     //Additional inicialization code.
}