Button简介 – AA岁月静好AA

0

版权供述:定冠词是视频博客作者的原文书面语。,转载时得表明原文挽住 https://blog.csdn.net/zzl819954692/article/details/81781094

按钮是每一用户界面情郎。,单击时将买卖音讯发送到目的。。

本文引见了各式各样的按钮当打中差别。。

按钮是健康状况如何任务的?

按钮依照目的举措设计样品。,它是每一用户界面情郎。,单击时将买卖音讯发送到目的。。公司或企业此设计样品的更多教训,请反省 Concepts in Objective-C Programming打中Target-Action。

块按钮是由NSbutnCype处置的。,一旦单击了NSbutnCype风景并经过鼠标单击事情珍视,NSbutnCype的建议将其举措音讯发送到目的情郎。,但提出鼠标光标在Button 囚禁还可以持续在内部发送举措音讯并持续操纵者。。Button 可以以多种使有特色办法显示电池的操纵者影响。。比方,有边框的按钮单元可以呈现时掩藏上。,或许按下按钮单元时。,图像或给加阐明书面语可以使转动为替换的模型。。

NSbutnCype情郎得运用NSCORT子集的建议。,倘若你必要每一按钮,譬如,按钮。,运用包孕单飞NSButtonCell建议的NSButton情郎;倘若必要一组相关性按钮,譬如,一组使脱轨或单选按钮。,包孕专非常NSButtonCell建议的NSMatrix情郎。

NSButtonNSMatrix提出了每一把持风景。,曾经,尽管NSMatt必要你立即进入NSButtonCell情郎,但NSButton块办法都是NSButtonCell恒等的供述的办法是人的皮肤的。,(就是,NSButton办法的手段会志愿地为你转学一致的的NSButtonCell办法,省掉体恤NSbutnCype的在。。最适当的缺乏单调的生活的。NSButtonCell办法与用于显示快捷键的编造随着高亮或显示NSButton影响的委派办法公司或企业(惟一剩下的这些通常与NSButtonsetButtonType:办法一同设置)。

按钮类型

按钮类型决定了它的行动,健康状况如安在按下时伸出的显示影响。,按钮的类型可分为三类。:

经过setButtonType设置按钮类型。

普通按钮

这些按钮首要用于发射或使爆炸举措。,由于他们不显示他们的尊严。。当鼠标按下并重现T时,这些按钮会使转动显示。。

  • 要让NSButton按下把持按钮的外景。,运用NSMomentaryPushInButton(在XB的按钮反省官中,它被误认为是存储器。 Push”),当鼠标按下按钮时,按钮仿佛实质。。

    这时有每一。NSMomentaryPushInButton按钮示例,带有NSRoundedBezelStyle作风边界附近的,定期地和挤压时期的外景

    这是条用力打。NSThickerSquareBezelStyle典范的NSMomentaryPushInButton按钮示例。边框典范NSRegularSquareBezelStyleNSThickSquareBezelStyle同样的。

  • 把持按钮的外景,运用NSMomentaryChangeButton(在Xib中称为“Momentary Change”)。按下鼠标按钮时,它将抵换图片和标题。,当鼠标交付时,它将显示为定期地图片和给加阐明书面语。。倘若缺乏设置掉换图片或按钮给加阐明书面语,它不克不及的使转动它的外景。。

滞性按钮

这些按钮显示它们的影响。,它如同留存后按下。。点击一次,它将持续按下直到下次点击。。

  • 要让NSButton按下把持按钮的外景。,运用NSPushOnPushOffButton(xib中称为“Push On/Push Off”)。按下按钮后,按钮仿佛实质。,再次点击之退按钮。。爸的外景用于紧密的影响。NSOffState),给放血的外景用于吐艳和混合影响。NSOnStateNSMixedState)。此按钮用于显示敷用药打中已决定的实质的影响(说起,显示所选择本倘若为黑体的按钮)独特的有用处。
  • 把持按钮的外景,请运用NSToggleButton(在Interface Builder按钮反省器被误认为是切换。。点击一次,该按钮将显示其替换图像和给加阐明书面语。。再次点击以后,按钮将显示其定期地图像和给加阐明书面语。。倘若缺乏替换图像或给加阐明书面语,按钮的外景不克不及的使转动。。定期地图像和跑过讲授紧密的影响。NSOffState),更迭图像和标题讲授ON影响和混合影响。NSMixedState)。这是两个举措(譬如),终止和启动当打中切换按钮独特的有用处。。

倘若你为特别目的而设计每一按钮来显示自身人三个影响的有区别的外景,得自使明确NSwitter。

单选按钮和复选框

这些按钮显示敷用药打中影响。,它们是NSToggleButton的特别版本,具有体系使明确的图片。

尽管复选框和单选按钮可以显示自身人的有区别的图像。,但那类型的按钮不克不及。。

普通按钮的运用

普通按钮手段按钮名所界定方法的举措,通常,它是每一圆角矩形,外面遏制了它的名字。譬如,这事按钮能够呈现时每一对话框中,对话框可以在文档中找到倒转术。。
这时写图片界定方法
Interface Builder定中心按钮是最简略的。。还可以经过规划来找到顺序。NSButton建议,它的类型是NSMomentaryPushInButtonNSNoImage图像安置NSRoundedBezelStyle的边框。

这事按钮也可以是图标按钮。,就是,这事按钮首要是由它的图标分清的。,短时间地或缺乏书面语。它是矩形的的。,像这般:
这时写图片界定方法
你可以用它。Interface Builder或找到图标按钮的行为准则。倘若你运用Interface Builder,从普通按钮开端。。倘若在行为准则中找到它,与找到每一。NSButton建议,与将其类型设置为NSMomentaryPushInButton,图像席位设置为NSImageOnly,边框类型设置为正方形边框类型。。惟一剩下的,为你为特别目的而设计的东西设定图像。。

当心:可以在倒转术按钮上找到每一小图像。,图标按钮可以有每一监视。。最重要的问题是是什么最伸出的的。。倘若是倒转术,把它作为倒转术按钮。倘若它是每一图像,把它作为图标按钮。。

你也可以有每一按钮在两个影响当中切换。,每个州都有自身的阶层和抽象。。譬如,按钮可以在启动和终止当中切换。。你可以运用和运用。Interface Builder或许以与行为准则找到定期地按钮平等的的办法找到按钮。,只需将按钮类型更反倒NSToggleButton。与给按钮每一可选的给加阐明书面语和图像,每一普通的给加阐明书面语和IM。。该按钮率先显示规定标题和图像。,与在用户点击后掉换给加阐明书面语和图像。。

运用复选框

复选框显示敷用药打中设置。,复选框的另每一选派是切换按钮。,用不育系倒转术标志每一复选框。。

运用NSwitter的影响属性设置复选框的影响。。能够的影响是NSONSTATE。、NSOffState和NSMixedState。倘若按钮紧密的,表达是空的。,反对地,盒子里有每一婚配的数字。;倘若按钮有混合影响,盒子里有个少量。。

基准复选框

Interface Builder这是找到复选框最简略的办法。。还可以运用行为准则找到。,增加自NSButton,其类型使明确为NSSwitchButton

不同的一组单选按钮。,可以在复选框中选择多个选择能力。。这组按钮显示自身人选打中使具有特征都是粗体,无斜体的,也有点下划线。:
这时写图片界定方法

图标复选框

你也可以有每一复选框。,这是每一图标按钮,就是。,这首要是经过它的图标来分清的。,短时间地或缺乏书面语,倘若按钮紧密的,这如同很伸出的。;倘若按钮翻开,它如同被推了出来。。(图片按钮不克不及显示混合影响。)

你可以在Interface Builder或许在行为准则中找到图片复选框。,倘若你正运用Interface Builder,在普通按钮的着陆;倘若由行为准则找到,你必要造成NSButton的建议。与将其类型设置为NSPushOnPushOffButton、图像席位设置为NSImageOnly、边框类型被设置为正方形类型以使转动它。,与着陆必要设置图像。。

单选按钮

单选按钮显示敷用药打中某一设置。,是每一群体的钟爱的。,一次仅仅翻开每一按钮。,运用一组单选按钮在专非常互斥的OPTI当中举行选择。

基准单选按钮

基准单选按钮是每一小圆形的。,相继不绝是不育系书面语。。倘若按钮紧密的,这事圆形的是空的。;倘若按钮翻开,圆形的被洋溢了。;倘若按钮有混合影响,这事圆形的有每一少量。。
譬如,这组按钮讲授自身人意味着的情郎都是绿色的。
这时写图片界定方法
这事组显示某一被选打中抱反感是白色的。,它的钟爱的是绿色的。
这时写图片界定方法
一组单选按钮是由每一结合的。NSMatrix情郎实现预期的出路,情郎遏制专非常NSButtonCell建议,并欺骗NSRadioModeMatrix的尾随样品。不论何时你点击矩阵打中每一按钮,,矩阵紧密的在前方选择的按钮并翻开新的点击。。
Interface Builder这是找到一组使脱轨按钮的最简略办法。。您还可以经过行为准则找到行为准则。NSMatrix情郎并设定初值它initWithFrame:mode:prototype:numberOfRows:numberOfColumns:),运用原模式单元和NSRadioModeMatrix的尾随样品。原模式情郎,运用NSRadioButton找到类型NSButtonCell情郎。清单1显示了健康状况如何做到这点。。
清单1:经过行为准则找到每一单选按钮

- (void)awakeFromNib {

    NSButtonCell *prototype = [[NSButtonCell 异类] init
    [原模式] setTitle:@"Watermelons"];
    [原模式] setButtonType:NSRadioButton];
    NSRect matrixRect = NSMakeRect(20.0, 20.0, 125.0, 125.0);
    NSMatrix *myMatrix = [[NSMatrix 异类] initWithFrame:matrixRect
                                                    mode:NSRadioModeMatrix
                                               prototype:(NSCell *)prototype
                                            numberOfRows:3
                                         numberOfColumns:1];
    [ [亲自] 窗口 contentView] addSubview:myMatrix];

    NSArray *cellArray = [myMatrix 细胞
    [[cellArray objectAtIndex:0] setTitle:@"Apples"];
    [[cellArray objectAtIndex:1] setTitle:@"Oranges"];
    [[cellArray objectAtIndex:2] setTitle:@"Pears"];
}

图标单选按钮

单选按钮也可以是图标按钮,就是。,这首要是经过它的图标来分清的。,短时间地或缺乏书面语。倘若按钮紧密的,因而它如同堕入了困处。;倘若按钮翻开,它如同被推了出来。。(图标按钮不克不及显示混合影响。。)
你可以在Interface Builder在行为准则样品下找到一组图标单选按钮。。倘若你正运用Interface Builder请从普通按钮开端。;倘若由行为准则找到,找到按钮矩阵。。与将矩阵的尾随样品使转动为NSRadioModeMatrix。将按钮的类型更反倒NSPushOnPushOffButton,它们的图像席位更反倒NSImageOnly,它们的边界附近的类型被使转动为正方形边界附近的类型。。惟一剩下的,为你为特别目的而设计的东西设置图片。。

查询按钮矩阵

一组单选按钮或复选框是按一种办法规划的。NSMatrix情郎,其整队情郎是NSButtonCell情郎。矩阵情郎是一种特别的把持。。每个单元可以委派自身的目的和买卖选择者。。旁,NSMatrix能够有自身的目的和买卖选择者。。(更多使用着的矩阵情郎的目的买卖的教训),请参阅矩阵顺序设计有指导意义的事物。)
要找到用户选择的单选按钮或复选框(当用户单击时),您可认为T打中每个囚禁委派目的和有区别的的买卖选择者。,与实现预期的出路一致的的买卖办法。。曾经,查询单选按钮O中出席的选择的一种更无效的办法NSMatrix情郎自身实现预期的出路目的买卖。,而且在买卖办法中决定现时选择了哪个单元(或单元)。这每一。NSMatrix办法是selectedCellselectedCells
清单1显示了每一举措办法的实现预期的出路。,此办法答案单选按钮矩阵打中选择。。
清单1 查询意味着的单选按钮单元的矩阵情郎。

 - (IBAction)findSelectedButton:(id)sender { 
    NSButtonCell *selCell = [发送者] selectedCell];
    NSLog(@"Selected cell is %d", [selCell 监视
}

这事行为准则获得阐明了替换的可以在S时申请表格的技术。。您可认为矩阵打中每个囚禁分派数字标志来身份证明它。,与,在处置选择时查询这些标志值。。

设置按钮边框的外景。

可以经过使转动按钮的人物和职务来把持边框。。当心,倘若isborder重现NO,边界附近的不克不及的呈现。。运用setborder:使转动其价格。
使转动边框的人物,请运用setBezelStyle:更改按钮的边框类型。。边界附近的类型分为两类。。

设置按钮给加阐明书面语

每一按钮可以有两个相关性的给加阐明书面语:协同给加阐明书面语和更迭给加阐明书面语。。倘若按钮类型是NSMomentaryPushInButtonNSPushOnPushOff按钮、NSMomentaryLightButtonNSOnOffButton,只显示定期地给加阐明书面语。。倘若按钮类型是NSMomentaryChangeButtonNSToggleButton,当按钮影响紧密的时 (NSOffState将显示定期地跑过。,当按钮的影响为onmixed (NSOnState将显示更迭给加阐明书面语。。或NSMixedState)。倘若必要每一按钮显示自身人三个影响的有区别的给加阐明书面语,你得子集。NSButton
倘若您希望的事给加阐明书面语遏制纯倒转术,请运用setTitle:设置协同给加阐明书面语和setAlternateTitle:设置更迭给加阐明书面语。倘若您希望的事给加阐明书面语遏制典范倒转术,譬如,斜体的或黑体字,请运用setAttributedTitle:setAttributedAlternateTitle:
您要设置给加阐明书面语相说起按钮图像的取向。,运用setImagePosition:,设置按钮图像的阐明。倘若缺乏图片,给加阐明书面语将在按钮中水温和铅直居中。。倘若给加阐明书面语高于图像、下部或堆叠部件,给加阐明书面语将在按钮中程度居中。。人的皮肤给加阐明书面语。,运用setImagePosition:带有NSImageOnly的参量。
设置给加阐明书面语的编造,发送setFont:按钮单元到按钮。
当鼠标进展到监视时,倘若希望的事按钮显示其给加阐明书面语,必要运用Tool Tips

设置电钮

每一按钮可以有两个相关性的图像:公共图像和更迭图像。。倘若按钮类型是NSMomentaryPushInButtonNSPushOnPushOff按钮、NSMomentaryLightButtonNSOnOffButton,只显示定期地图像。。倘若按钮类型为NSMomentaryChangeButtonNSToggleButton,定期地图像有按钮影响。off时显示(NSOffState),备用的反射性的有按钮影响。onmixed (NSOnState)时显示。或NSMixedState)。倘若为特别目的而设计每一按钮显示自身人三个影响的有区别的图像,你得子集。NSButton。(尽管使脱轨按钮和单选按钮可以显示有区别的的图像。,但这事重大聚会缺乏公共交流。。)
应设置定期地图像。,运用setImage:。设置替换图像,运用setAlternateImage:

当心:倘若按钮是复选框或单选按钮,不要使转动抽象。。这些按钮的图像由体系使明确。,使转动它们会通向不成预知的出路。。倘若您为特别目的而设计每一带有自使明确外景的按钮,或许单选按钮。,可以专用化每一切换按钮(类型为NSToggleButton的按钮)或NSButton子集。
设置按钮图像的席位,运用setImagePosition:,后面的值经过。默许是NSNoImage

人的皮肤按钮

从风景中人的皮肤按钮有两种办法:它可以完整反,也可以只在鼠标经过时显示。。

将按钮设置为默许典范。

倘若按钮有NSRoundedBezelStyle 边框类型,您可以将其标志为默许按钮。。默许按钮是意味着的典范。,当用户按Return转学它的买卖音讯。瞧像这般。
这时写图片界定方法
将按钮标志为默许值,用 setKeyEquivalent:办法将其快捷键设置为Return

[美纽] setKeyEquivalent:@"\r"];

可以在Interface Builder设置快捷键,默许按钮有每一粗略的轮廓画在它四周。,在按钮的边界附近的此外,交流设计麝香开场白额定的房间。。

设置按钮快捷键

每一按钮可以有每一相等的键。,这般当用户按那键时,按钮就会答案,就仿佛它曾经被点击过俱。
当心,倘若将按钮的快捷键设置为Return,此按钮将适宜默许按钮。。
通常在Interface Builder为按钮设置快捷键。关于这一点,选择按钮并翻开反省器。attributes窗格。显示按钮属性,单击键Equiv掷还,进入要与扶垛关系的键或键结成。。按重新放置键截当量的装有蝶铰码。。)

要在顺序设置快捷键,可以运用setKeyEquivalent:可以导入一致的的使具有特征。。譬如,设置Return为该按钮的快捷键:

[美纽] setKeyEquivalent:@"\r"];

按钮的键指定设置为非印记使具有特征。,可以运用NSResponder使明确的装有蝶铰常数,如以下示例所示,它将按钮的装有蝶铰指定设置为左箭键。。

unichar arrowKey = NSLeftArrowFunctionKey;
[按钮] setKeyEquivalent:[NSString stringWithCharacters:&arrowKey length:1]];

子集化NSButton

倘若找到每一NSButton子集来手段它自身的设定初值,重写委派的设定初值器NSViewinitWithFrame:办法)。倘若想在NSButton在子集中运用自使明确NSButtonCell子集,得重写cellClass:办法。

LEAVE A REPLY