您的位置:首页 > 其它

Xamarin.Mac中使用emoji表情,以及让输入框获取焦点,并将光标定位到字符串末尾

2016-10-11 11:46 891 查看
最近项目中需要实现一个输入框中可以输入emoji表情的功能,研究发现,mac系统中默认可以通过快捷键或者顶部菜单中Edit中的子菜单来调出emoji面板。如下图所示:



但项目中需要通过点击一个表情按钮来弹出emoji面板,所以需要知道如何通过代码来调出emoji面板,在网上找了一年,终于找到了,给大家分享一下,点击表情按钮时,如果输入框没有获取焦点的话,我们需要通过代码来让输入框获取焦点,并将光标定位到字符串末尾,具体代码很简单,也有注释,就不赘述了,直接上代码:

public override void ViewDidLoad()
{
base.ViewDidLoad();

NSTextField tf1 = new NSTextField(new CoreGraphics.CGRect(100,100,100,30));
tf1.StringValue = "1";
this.View.AddSubview(tf1);

NSTextField tf2 = new NSTextField(new CoreGraphics.CGRect(250, 100, 100, 30));
tf2.StringValue = "2";
this.View.AddSubview(tf2);

NSButton emojiBtn = new NSButton(new CoreGraphics.CGRect(400,100,100,30));
emojiBtn.Title = "打开emoji表情面板";
emojiBtn.Activated += (sender, e) => {
if (tf1.CurrentEditor==null)
{
//CurrentEditor为null说明输入框没有获取焦点
tf1.SelectText(this);//让输入框获取焦点并且选中所有文本
tf1.CurrentEditor.SelectedRange = new NSRange(tf1.StringValue.Length, 0);//将输入光标定位到字符串末尾
}
//打开emoji面板
NSApplication.SharedApplication.OrderFrontCharacterPalette(this);
};
this.View.AddSubview(emojiBtn);
// Do any additional setup after loading the view.
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: