文本字段中的标注框

时间:2015-07-03 22:57:26

标签: ios objective-c

有没有办法在文本字段旁边或文本字段内的按钮上召唤一个标注框?

enter image description here

或者UIAlertView是我唯一的选择吗?

编辑:我成功尝试创建UIPopoverController,是否有一种方法来定位箭头,使其不会出现在中心?

1 个答案:

答案 0 :(得分:0)

我已经成功实现了创建标注框的目标,因为它出现在我的问题图像中。我要感谢Paul Cezanne为我提出的解决方案。我想如果它没有在地图视图中显示,名称(pop over / callout)会有所不同。无论如何,对于未来的苹果开发人员,我采取的步骤回答了我的问题:

  1. 使用导航控制器嵌入您的第一个视图控制器
  2. 在主故事板右侧的“文件检查器”选项卡中选中自动布局和大小类,因为如果缩小视图控制器,弹出窗口将仅作为推送视图。
  3. 添加第二个视图控制器(您不需要创建标题或实现文件)
  4. 将按钮拖到第一个视图控制器上(您不需要创建IBAction)
  5. 按住控制键,然后单击并从第一个视图控制器上的按钮拖动到第二个控制器,并显示segue选项
  6. 选择'作为弹出窗口'
  7. 不要忘记为segue
  8. 创建标识符

    现在转向编码,这是视图控制器的头文件:

    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController <UIPopoverPresentationControllerDelegate>
    
    @end
    

    以下是视图控制器的实现文件:

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    
        // Declare a string to identify the segue
        NSString *identifier = segue.identifier;
    
        // If the string matches the string inside @""
        if ([identifier isEqualToString:@"popOverSegue"]) {
    
            // Assign the view controller to a pointer
            UIViewController *dvc = segue.destinationViewController;
    
            // Identify that the view controller is to be a pop over presentation controller
            UIPopoverPresentationController *ppc = dvc.popoverPresentationController;
    
            // Set the size of the view controller
            // Width = 200
            // Height = 200
            dvc.preferredContentSize = CGSizeMake(200, 200);
    
            // Have the pop over presentation controller point upwards
            ppc.permittedArrowDirections = UIPopoverArrowDirectionUp;
    
            if (ppc) {
    
                ppc.delegate = self;
            }
        }
    }
    
    - (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller {
    
        return UIModalPresentationNone;
    }
    

    构建并运行,你应该有一个成功的pop over控制器应用程序。鳍。