Tag: uimenucontroller

iOS – NotificationCenter addObserver“UIMenuControllerWillHideMenu”

我已经为UIMenuControllerWillHideMenu添加了通知观察者,但是它不会调用添加/关联通知中心的select器。 UIMenuControllerWillHideMenu是UIMenuControllerWillHideMenu的通知中心标识符,应该在UIMenuController隐藏时UIMenuController 。 但不知何故,这是行不通的。 这里是我试过的代码(Swift 3.x): private func addMenuObserverNotification(){ NotificationCenter.default.addObserver(self, selector: #selector(self.menuControllerWillHideMenu), name: NSNotification.Name(rawValue: "UIMenuControllerWillHideMenu"), object: nil) } // This function should be called on 'UIMenuControllerWillHideMenu' func menuControllerWillHideMenu() -> Void { removeMenuObserverNotification() } private func removeMenuObserverNotification(){ NotificationCenter.default.removeObserver(self) } 无法识别,什么是错的。

UITableView上的UIMenuController尽pipe有所有的方法都不会显示出来

我有UITableView来显示一些列表。 实现了UILongPressGestureRecognizer来获得调用,并在此我想显示删除,上传等操作的菜单。 以下是实施 // Registering for long press event UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; lpgr.delegate = self; [self.myTable addGestureRecognizer:lpgr]; 长按我的控制function – (IBAction)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer { if (gestureRecognizer.state == UIGestureRecognizerStateBegan) { CGPoint p = [gestureRecognizer locationInView:self.playbackTable]; NSIndexPath *indexPath = [self.playbackTable indexPathForRowAtPoint:p]; if (indexPath == nil) { NSLog(@"long press on table view but not on a […]

显示UIMenuController将取消selectUITableViewCell

我已经在显示UIMenuController的表格视图单元上实现了一个长按手势识别UIMenuController 。 但是当菜单显示时,对应的表视图单元格被取消select。 在显示菜单之前,我会根据需要调用[self becomeFirstResponder] 。 我认为这个调用取消了这个单元格,但是如何让它在UIMenuController可见的时候保持选中呢?

如何使用UIMenuController iOS5.1防止在UITextView上复制/粘贴/selectpopup窗口

问题 :如何防止出现在UITextView上的复制/粘贴/selectpopup窗口(不使用UIwebView和css)? 我不想去UIWebView的溃败,因为我已经使用UIViews与UITextFields进行数据input。 我已经尝试过,在我的视图控制器的实现文件中使用方法: targetForAction:withSender , setMenuVisible:animated ,最后canPerformAction:withSender实现解决UITextField的解决scheme失败 。 (它不劳作 – [悲伤的脸])

UIMenu在CollectionView中popup

这是我如何设置popovers UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"Delete Patient" action:@selector(customAction:)]; [[UIMenuController sharedMenuController] setMenuItems:@[menuItem]]; 然后添加require方法 – (BOOL)canBecomeFirstResponder { return YES; } – (BOOL)canPerformAction:(SEL)action withSender:(id)sender { NSLog(@"canPerformAction"); // The selector(s) should match your UIMenuItem selector if (action == @selector(customAction:)) { return YES; } return NO; } – (void) customAction:(id) sender { for (Treatment *t in self.ptToDelete.patientRx) { [self.managedObjectContext […]

如何删除复制,全选,从UIMenuController中定义menuItem

正如我的这个问题显示我想显示popup时,用户select文本。 并popup有关该单词的详细信息将被显示。 但我没有得到任何满意的答案,所以我改变了我的逻辑。 现在,我想在我的UIMenuController中显示一个项目,如Pop-Up菜单,当用户单击该选项而不是显示popup窗口时。 我用这个代码实现了这个, UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"Pop-Up" action:@selector(displayPopUp:)]; [[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObject:menuItem]]; 所以我的select显示,当我点击该选项比popup式显示。但其他一些选项也显示,我不想这样,这样 我GOOGLE了它,并得到这个代码 – (BOOL)canPerformAction:(SEL)action withSender:(id)sender { [UIMenuController sharedMenuController].menuVisible = NO; //do not display the menu if (action == @selector(copy:)) { return NO; } else if (action == @selector(selectAll:)) { return NO; } [self resignFirstResponder]; //do not allow the user […]

_UIFallbackPresentationViewController

当我closures在iPhone上的UIWebView中的UIMenuController上点击Define打开的字典时,我不断收到以下错误: – Unbalanced calls to begin/end appearance transitions for <_UIFallbackPresentationViewController: 0x10ab9640>. 在出现这个错误之后,UIMenuController会在任何UIWebView中停止显示。 任何想法发生了什么? 更新:字典视图打开时,实际显示错误,而不是解雇它。 更新2:错误是应用程序广泛。 任何地方都有可选的文本(即webview,textview等),我只能使用一次定义字典。 这个错误出现,然后,我必须退出应用程序,并再次启动,使用字典。

如何select文本时用我自己的视图replaceUIMenuController?

当select文本时,UIMenuController默认popup剪切/复制/粘贴等。 我想用我自己的自定义视图(类似看,但两倍高,以便我可以有两行button/自定义视图)replace此。 我怎样才能做到这一点? 我知道有没有简单的方法。 我期待如果有一个简单的解决scheme,它不会很优雅。 该代码也不能使用任何私人API。 我真的,而不是必须实现我自己的文本视图,重新实现文本select和input,并重新实现放大视图,所以我可以编写自己的UIMenuController克隆,如果有任何方法来避免它。 应用程序的界面非常重要,我可以replaceUIMenuController,所以如果没有其他答案,那么我可能会做这个。 如果有人能为我节省很多时间,我会非常感激,并提出另一个更简单的方法来做到这一点!

WKWebView和UIMenuController

我有一个WKWebView的应用程序。 在这个应用程序中,我定制了UIMenuController提供的选项。 networking视图似乎添加复制和定义选项菜单,不pipe我做什么。 如果我将自己设置为第一响应者,并返回NO,我仍然可以复制并定义选项。 而且我已经实现了自己的复制选项,根据用户的喜好和确切的select来做特殊的事情。 有没有办法删除这些额外的选项? 更新 :我已经提交了这个雷达18487289。

UIMenuController方法setTargetRect:inView:不能在UITableView中工作

我在我的tableview像这样显示自定义的UIMenuController 但问题是,它显示在中心,我想显示在橙色的label顶部。 为了显示在label我做了这个[menu setTargetRect:CGRectMake(10, 10, 0, 0) inView:self.lbl]; 下面是整个代码。 但是,如果我显示没有UITableView的UIMenuController setTargetRect工作正常。 为什么setTargetRect不能使用UITableView ? setTargetRect Doc说: (a)这个目标矩形(targetRect)通常是select的边界矩形。 UIMenuController将编辑菜单放在这个矩形的上方; 如果菜单没有足够的空间,则将其放置在矩形的下方。 菜单的指针被放置在目标矩形顶部或底部的中心。 (b)请注意,如果将目标矩形的宽度或高度设置为零,则UIMenuController会将目标区域视为定位的线条或点(例如插入符或单点)。 (c)一旦设置,目标矩形不会跟踪视图; 如果视图移动(例如在滚动视图中发生),则必须相应地更新目标矩形。 我错过了什么? MyViewController -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 5; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { TheCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cid" forIndexPath:indexPath]; cell.lbl.text = [NSString stringWithFormat:@"%ld", (long)indexPath.row]; return cell; } – (BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath […]