const orgInput = document.getElementById('organisation'),
a = document.getElementById('a');
function setA(){
a.innerText = orgInput.value;
a.href = orgInput.value;
}
<input type="text" id="organisation">
<input type="button" onclick="setA()" value="create"/>
<a id="a"></a>
См. Метод setAutoresizingMask: NSView и связанные с ним маски изменения размера .
Каждое представление имеет маску флагов, управляемую установкой свойства autoresizingMask с ИЛИ поведения, которое вы хотите от масок изменения размера . Кроме того, супервизор должен быть настроен для изменения размера его подпредставлений .
Наконец, в дополнение к основным параметрам изменения размера, определяемым маской, вы можете полностью управлять компоновкой подвидов, реализовав - resizeSubviewsWithOldSize:
Я обнаружил, что маски autoresizingBit
имеют ужасные названия, поэтому я использую категорию в NSView, чтобы сделать вещи более явными:
// MyNSViewCategory.h:
@interface NSView (myCustomMethods)
- (void)fixLeftEdge:(BOOL)fixed;
- (void)fixRightEdge:(BOOL)fixed;
- (void)fixTopEdge:(BOOL)fixed;
- (void)fixBottomEdge:(BOOL)fixed;
- (void)fixWidth:(BOOL)fixed;
- (void)fixHeight:(BOOL)fixed;
@end
// MyNSViewCategory.m:
@implementation NSView (myCustomMethods)
- (void)setAutoresizingBit:(unsigned int)bitMask toValue:(BOOL)set
{
if (set)
{ [self setAutoresizingMask:([self autoresizingMask] | bitMask)]; }
else
{ [self setAutoresizingMask:([self autoresizingMask] & ~bitMask)]; }
}
- (void)fixLeftEdge:(BOOL)fixed
{ [self setAutoresizingBit:NSViewMinXMargin toValue:!fixed]; }
- (void)fixRightEdge:(BOOL)fixed
{ [self setAutoresizingBit:NSViewMaxXMargin toValue:!fixed]; }
- (void)fixTopEdge:(BOOL)fixed
{ [self setAutoresizingBit:NSViewMinYMargin toValue:!fixed]; }
- (void)fixBottomEdge:(BOOL)fixed
{ [self setAutoresizingBit:NSViewMaxYMargin toValue:!fixed]; }
- (void)fixWidth:(BOOL)fixed
{ [self setAutoresizingBit:NSViewWidthSizable toValue:!fixed]; }
- (void)fixHeight:(BOOL)fixed
{ [self setAutoresizingBit:NSViewHeightSizable toValue:!fixed]; }
@end
Которые затем могут использоваться как следует:
[someView fixLeftEdge:YES];
[someView fixTopEdge:YES];
[someView fixWidth:NO];