可可中视图中按钮/文本字段的位置

时间:2011-06-14 11:15:46

标签: objective-c cocoa nsview nstextfield

我很抱歉提出这样的问题,但我似乎无法从野外网上找到答案。

我想在自定义视图中找到NSTextField的位置,因此我可以通过编程方式在其下添加其他文本字段。 我不仅在IB中添加其他文本字段的原因是因为我需要能够动态创建它们。 NSTextFieldIBOutlet

相关联

所以主要问题是:如何找出NSTextField (或NSButton的位置,它并不重要)atm in自定义视图(我需要获取项目的坐标)?

3 个答案:

答案 0 :(得分:1)

使用NSTextField创建一个实例变量,然后在其上调用这些方法以获得所需的四个值。

NSRect textFieldFrame = [textField frame];

NSPoint textFieldLocation = textFieldFrame.origin;
NSSize textFieldSize = textFieldFrame.size;

NSInteger x = textFieldLocation.x;
NSInteger y = textFieldLocation.y;

NSInteger width = textFieldSize.width;
NSInteger height = textFieldSize.height;

答案 1 :(得分:0)

任何视图都包含boundsframe属性。 bounds是包含该视图自身坐标空间中视图的矩形; frame是superview坐标空间中的包围矩形。在这种情况下,您需要文本视图的框架,即它在包含它的视图中的位置和大小,以便您可以在同一个超级视图中找到其他文本视图。

答案 2 :(得分:0)

NSButton继承的每种视图或控件(如NSTextFieldNSView等)都有-frame方法,其中包含定位信息。

如果您的自定义视图的IBOutletNSTextField相关联,则可以执行以下操作:

NSRect textFieldFrame = [textField frame];

NSRect包含文本字段所在位置的所有信息。

有关详细信息,请参阅以下2个指南:

View Programming Guide: Understanding a View's Frame and Bounds

Cocoa Drawing Guide: Coordinate Systems and Transforms