gpt4 book ai didi

ios - iOS点击UITextField时如何显示弹出菜单列表? (Kx菜单)

转载 作者:行者123 更新时间:2023-11-29 00:40:35 26 4
gpt4 key购买 nike

抱歉,我对 iOS 开发有点陌生,对于一个项目,我需要使用弹出列表菜单库(我知道 iOS 支持 PickerView ,...为了从列表菜单中进行选择)但我需要使用那个弹出列表,所以经过一番搜索后我找到了这个库: https://github.com/kolyvan/kxmenu

我已经看过该项目的示例。我将与 kxmenu 示例相同的示例添加到我的项目中并且它有效,但我需要稍作更改。而不是单击按钮(在示例中)打开弹出菜单,我希望每当用户在 UITextField 中单击时,都会打开弹出菜单。此示例将按钮添加为 subview ,但我需要将一个操作连接到不是以编程方式编写的 UITextField(它不是通过添加 subview 添加的...)

如果有人告诉我我需要对以下代码应用哪些更改才能进行此更改,我将非常感谢(示例)代码:

  1. 不使用按钮,而是使用 UITextfield ,我的意思是当用户单击 UITextField 时,它将打开 kxmenu 弹出窗口

  2. 请考虑在 kxmenu 示例中,按钮是以编程方式添加的,但我拥有的 UITextField 是一个属性。

部分源码如下:

//#第 1 部分{

  _btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
_btn1.frame = CGRectMake(5, 5, 100, 50);
[_btn1 setTitle:@"click Me" forState:UIControlStateNormal];
[_btn1 addTarget:self action:@selector(showMenu:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:_btn1];

//#第 1 部分 }

- (void) pushMenuItem:(id)sender
{
NSLog(@"%@", sender);
}

//#第 2 部分 {

- (void)showMenu:(UIButton *)sender

//#第 2 部分 } {

NSArray *menuItems =

@[

[KxMenuItem menuItem:@"ACTION MENU 1234456"
image:nil
target:nil
action:NULL],


[KxMenuItem menuItem:@"Reload page"
image:[UIImage imageNamed:@"reload"]
target:self
action:@selector(pushMenuItem:)],

[KxMenuItem menuItem:@"Search"
image:[UIImage imageNamed:@"search_icon"]
target:self
action:@selector(pushMenuItem:)],

];

KxMenuItem *first = menuItems[0];
first.foreColor = [UIColor colorWithRed:47/255.0f green:112/255.0f blue:225/255.0f alpha:1.0];
first.alignment = NSTextAlignmentCenter;

[KxMenu showMenuInView:self.view
fromRect:sender.frame
menuItems:menuItems];
}

凭借我对 iOS 的一点了解,我认为这些更改可能适用(但我已经尝试过,但它不适用于 UITextField

  1. 我需要将其替换为:而不是上面代码中显示的//#part 1
    [currentTextField addTarget:self action:@selector(showMenu:) forControlEvents:UIControlEventTouchUpInside];
  2. 我需要将它改为 UITextField 作为发件人的参数,而不是 UIButton 作为发件人参数的声明//#part 2 shwon 在上面的代码中。

如果有人通过编写一些代码向我展示我需要对上述源代码进行哪些更改以达到以下目的,我将不胜感激。谢谢!

最佳答案

可以使用“UITextFieldDelegate”,例如:

- ( BOOL )textFieldShouldBeginEditing:( UITextField *)textField
[self taggle];
)

-(void)taggle{
NSArray *menuItems =
@[
[KxMenuItem menuItem:@"开启闪光灯"
image:nil
target:self
action:@selector(clickTorch)],
[KxMenuItem menuItem:@"翻转"
image:nil
target:self
action:@selector(clickCamera)],
[KxMenuItem menuItem:@"美颜"
image:nil
target:self
action:@selector(clickBeautyFace)],

];
[KxMenu showMenuInView:self.view
fromRect:textField.frame // UITextField *textField = [[UITextField alloc] initWithFrame:....] // you can write any frame and change it.
menuItems:menuItems];
}

关于ios - iOS点击UITextField时如何显示弹出菜单列表? (Kx菜单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39620117/

26 4 0