From 3dffbd6071a052bb921dcc08aaa3a4c0cd17de57 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Thu, 16 Aug 2012 19:13:59 +0100 Subject: [PATCH] Refs #1001. Make it easy to test text field cut/paste behaviour. --- Tests/Manual/CPTextField/AppController.j | 25 ++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/Tests/Manual/CPTextField/AppController.j b/Tests/Manual/CPTextField/AppController.j index 11911d466..78e54d206 100644 --- a/Tests/Manual/CPTextField/AppController.j +++ b/Tests/Manual/CPTextField/AppController.j @@ -52,7 +52,7 @@ [contentView addSubview:shadowLabel]; [contentView addSubview:championOfLightLabel]; - var jumpLabel = [CPTextField labelWithTitle:@"The text of these text fields should not move when a field becomes the first responder."]; + var jumpLabel = [CPTextField labelWithTitle:@"The text of these text fields should not move ('jump') when a field becomes the first responder. Labels on the right should replicate the input."]; [jumpLabel sizeToFit]; [jumpLabel setFrameOrigin:CGPointMake(15, 150)]; @@ -63,15 +63,24 @@ for (var i = 0; i < 5; i++) { var size = 10 + 3 * i, - textField = [CPTextField textFieldWithStringValue:@"Size " + size placeholder:@"Size " + size width:200]; + textField = [CPTextField textFieldWithStringValue:@"Size " + size placeholder:@"Size " + size width:200], + echoField = [CPTextField labelWithTitle:""]; [textField setFont:[CPFont systemFontOfSize:size]]; [textField sizeToFit]; [textField setFrameOrigin:CGPointMake(15, y)]; + textField.echoField = echoField; + [contentView addSubview:textField]; + + [echoField setFont:[CPFont systemFontOfSize:size]]; + [echoField setStringValue:[textField stringValue]]; + [echoField sizeToFit]; + [echoField setFrameOrigin:CGPointMake(CGRectGetMaxX([textField frame]) + 15, CGRectGetMidY([textField frame]) - CGRectGetHeight([echoField frame]) / 2.0)]; + [contentView addSubview:echoField]; + + [[CPNotificationCenter defaultCenter] addObserver:self selector:@selector(textDidChange:) name:CPControlTextDidChangeNotification object:textField]; y = CGRectGetMaxY([textField frame]) + 6; - - [contentView addSubview:textField]; } [theWindow orderFront:self]; @@ -111,4 +120,12 @@ [sender setEditable:NO]; } +- (void)textDidChange:(CPNotification)aNotification +{ + var changedField = [aNotification object]; + + [changedField.echoField setStringValue:[changedField stringValue]]; + [changedField.echoField sizeToFit]; +} + @end