我正在使用NewtonScript开发一个Newton OS应用程序,而protoApp
proto比newtApplication
proto(即NewtApp)更适合应用程序类型。 protoApp
提供标题&状态栏有关闭框,但如何在状态栏中插入自定义按钮(因为它只显示时钟)?
答案 0 :(得分:1)
我在this thread上找到NewtonTalk,其中Paul Guyot说:
您不需要使用protoApp。您可以改用protoFloater。您 然后可以添加一个更好的NewtonOS 2.x状态栏来取代丑陋 protoApp的时钟/电池选择器,并将关闭框放在此栏上。 诀窍是窃取NewtApp框架的标准,即使用 newtStatusBarNoClose。我为几个项目做了这个,很可能 记录在文档中(您可以使用的事实) newtStatusBar [NoClose]而不是protoStatusBar),你可以采取 按钮处理代码的优点(自动对齐它们) 在左边和右边)。
事实证明,第7-19页的牛顿程序员指南(2.0)中记录了使用newtStatusBar
代替protoStatus
的建议:
注意强>
新状态栏protos newtStatusBarNoClose和 newtStatusBar是添加状态栏的首选方式 你的申请。这些原型,描述于 “NewtApp应用程序”(第4-1页),简化了添加按钮和 移动应用程序时自动隐藏关闭框 进入后台。
而且,保罗建议使用protoFloater
代替protoApp
,但实际上我最终使用的是protoDragger
。我不得不手动添加protoTitle
& protoStatusBar
:
mainView := {
_proto: protoDragger,
viewflags: vApplication + vVisible + vClickable,
appSymbol: kAppSymbol,
viewJustify: vjParentFullH + vjParentFullV,
viewBounds: {left: 16, top: 16, right: -16, bottom: -16},
stepChildren: [
{
_proto: protoTitle,
title: kAppTitle
},
{
_proto: newtStatusBar,
menuLeftButtons: [],
menuRightButtons: []
},
],
};
答案 1 :(得分:1)
牛顿原型和视图框架非常灵活,所以虽然像NewtApp这样的东西在幕后做了很多魔术很好,但我发现它可以根据需要直接编码布局。在下面的示例中,我只是创建一个按钮作为应用程序的子视图,并将其移动到正确的位置。我不需要对protos进行大量更改,因此像素值可以固定为:)
mainView := {
_proto: protoApp,
title: "App Title",
appSymbol: 'appSymbol,
stepChildren: [
{
_proto: protoTextButton,
text: "Custom",
viewJustify: vjParentRightH + vjParentBottomV + vjCenterH,
viewBounds: {left: -70, top: -16, right: -26, bottom: -3}
},
],
viewJustify: vjParentFullH + vjParentFullV,
viewBounds: {left: 16, top: 16, right: -16, bottom: -16},
};