如何在用户点击时创建文本字段

时间:2013-06-21 11:50:49

标签: macos cocoa

我希望我的应用程序在用户点击的位置创建一个文本框。那么如何按需合成文本框呢?有点像在OneNote中。

2 个答案:

答案 0 :(得分:1)

用于检测鼠标事件

 NSUInteger pmb = [NSEvent pressedMouseButtons];  
/*
A return value of 1 << 0 corresponds to the left mouse button, 1 << 1 corresponds to the right mouse button, 1<< n, n >=2 correspond to other mouse buttons.
*/

 NSPoint mouseLocation =   [NSEvent mouseLocation];
/*
Reports the current mouse position in screen coordinates.
*/

答案 1 :(得分:1)

  

那么如何按需合成文本框呢。

您可以创建文本视图或文本字段,然后将其添加到视图中的任何位置。假设您在event中有点击事件,并且您知道要创建的文本视图的widthheight,请执行以下操作:

NSPoint *p = [myContainerView convertPoint:[event locationInWindow] fromView:nil];
NSRect frame = NSMakeRect(p.x, p.y, width, height);
NSTextView *tv = [[NSTextView alloc] initWithFrame:frame];
[myContainerView addSubview:tv];