How to trigger label callback on enter/return but not on focus change?
-
@d-healey Could the property
updateEachKey
be of any help to you? -
@ustk I don't see how. I just want to trigger the callback when I hit enter.
I could roll my own complicated solution where I store each entered character in a variable and then process it when enter is pressed but that seems like a lot of work for something so simple.
-
keypresscallback object has a "isFocusChange" property
-
This post is deleted! -
Was the keypress callback a crucial part of your script or was it a work around for getting the value to print on ENTER?
-
@Chazrox I was using it to try and get around the focus behaviour.
-
@d-healey oh, In that case, I think I got it to work (Print value on ENTER and nothing else right?).
try this?
const var Label1 = Content.getComponent("Label1"); Label1.setControlCallback(onLabel1Control); Label1.setConsumedKeyPresses({keyCode: 13}); inline function onLabel1Control(component, value) { Console.print(value); Label1.set("text", ""); }
HiseSnippet 880.3ocsU0taSiDEclzZTi2kUKR7.XkeEPUUNMskBHzlsIs6FAsMhvhPnUBMY70wip8LV1iK0KBo8sh+tOR6a.6crcpcJgETD3HE464buybl49gmjn3PZpJgPseQdLPn+n0zboNXX.SHIiGQn+j0orTMj3TBcTdLKME7HT5F+lAf1dSRwy+9KGwBYRNTCQHuTI3vyDQBcM5jAOUDFdByCdgHpg26MXLWIGpBUYnd1vxkDy3WvlCmwLt0xh76rz.B89V6tqO+PW2C62eeWFquGisWOn+CA+C74669PWuY66h+NfPu0wdBsJYplogTBcyiTd4SCTuUVtAuTjJlEBFidjo3NWBehJzybDMnjgAhPuIKtnRI3pLo9Zaixqs6ZcpvSbMd802OWP3TGQyKPZqkk2FKIudMkmaC4sBIQaHoMKkzcrlxSDw5ZFid9AqwRLa5yv7TSoT5Ko0GnVCUnGR8NQrKfSRPiqin6Atta6f+cuGaai4pTsykrDmmwlAg8bdhyhHmC5gpnXkDM51ojtCFS4a6jZnk5DU3PVX3LLI2UIK4pvuouoYQf2Sg7II3IAR69tKf7gJO3QN85+diXDxPgDb7yjbsPIctw50kuPNaiJNLCtm86raaVXUHrSbh.0YI9isaWuyc6ngqzc11oiQ8u211twFblRCmK6VrRHmyMo78WIWkhBgjURaZIR9+BrqLKZFjz7bXbDS6KWKY84qkZVpyKSYMbTIGKE5yiA4mqAfTkmw29iwiXZlo.rBC8KFRzBiDnifKw1+xxw1VifzKzp3BeqxF3XGcA6sqJVKt6IBrjbKqx7.4pqmP7O+4f7ZiWO3sBOcv0.+8kCB.w7fFSZFMX17EySZeKD3iFTeToSE+0RSdLXkiY1x57qxmiGdSpuXpC4S6svtZkWVHSubqtYfXEAlyVp+xzCISE57lCL+l0++0Jw6XMQn4AqVisVgFwL62CMVM071VG66Cbcs.2z5jW88YDI44pLsPN+TlNQf0TVmkEMEqL3.t6RIDZ5YnsLU2k1tFayMvTP5UX7Q7ohrmwlVQ1aAIIhwSTugW1oZlKuUABpIYQwUa7ionsSORQ2ay64H7yDugyWdo9j.2ccCr+5F3dqaf6utAdv5F3CV2.O7KGn4q3+ZlVEU11PHmN43hQeT5wRFVAVTsR9O.LwdkQA
*Edited because I noticed it would trigger callback if you clicked out after ENTER without clearing the text.
in this example I input text, press ENTER, value prints, I click out and callback is not executed. I click in and out of the text input field just to show it doesn't execute.
-
@Chazrox Type in the label, then click on the UI outside of the label, for me that's firing the callback.
-
@d-healey yeah, that'll drive you nuts. haha Sorry. Thought I had it.
-
I got it to almost work here, if I'm understanding the issue correctly, high chance I'm not
HiseSnippet 1356.3ocsW80aaaCDmJIJHVaFXEXXOsGz7VKrQCBR555JVZ2biS7PPye7l65VQPP.sDkMQnHEjnSpWP.F1mj8QYutuB6w8IXu2G5NJJYQYK2UDzp.3Hd28i7Gu6HuS8hEdjjDQLxp1ylDQPVenc+Ib4nNivTNZ+cQVN1X7S1W8GZmIQ3jDhOxxZ4uWo2p1Jnzm+861AyvbORgHD54BpG4.ZHUVHsW6mRYrtXexyngFVe+166I3cDLwXfKKauIJB6cNdH4HrxrkrQVqtmOUJh6KwRRBxZkcD9S5ORbIWa+yoIzALhZvVn9vDoE2Uv7ULVIE0YDk42KeOmffYoWgGXYsG3isOj5SmJuvS7QoJbKPX5OrVpL8VtD81xjdaZPuJnjkAkVQSoaY22KlFIKzn3yGXuOWRhCvfa2jJZaQKc6Us6H.K3xMBwmS5FCClhn4C1by0cgeZssiC35SjtWficO.Ofv1x8wt4HGRjcDgQBNLnYCs5Fs1ttScCTQb1YGezBQoUmhZFLc69lA0sKfx0D1whnjEhQobdxg4D1OKh8U3tptiK7jSouw8jFBdi0caLgjn9WjHgJoWPTuOLlP3MNccSH.gRwDDnrfKR+kLDmiIl323z5NWmxA0pyvIx9DFwSR76oXBPhFMRUS4LJm3FLl6IoBt63HeH2I0njlsp6bkZY0Ktltaj.4Spcdrf0L.yRHp85T8c6tXCTdlpzlu.5eYBOLykxiFKAZpC1JWbyFRxKkMZsgTbf3RRbGbBoY9TqAg8TtfY1gEybfH1sYZj.ldiPRKs5rvxTKovbr41tT2GYX6Ioud5FLBenbDn8t2sUANioP8PCfYQuQd77ywIzSaU19YfqdJukRAt87VMHlfOeF4WWLz3UEkLmyOS4mZUZBt1cAgqRbIE2LN3pm747tUdtw.WqRqpLd7zLnzPcEIyFfy2DP9uhbY4OIpkhmLNj3+TxjdwvEXjjlM1ScSj9z87GEDbM3b.M8xI65tmSlnNbTrsAAJeR5D5dm6TJuk.WJig6cA+7LZzYzKxOU9rXoMVw1JmccvL1.nbUyYosNH4n9wXqcjPRNl2rkyUN0bt1wcVUAAUpKKnvHwUpVUOM9MArIeb3.R75vkhLHrlaHTjobkK6EW4xrvpmNSxvPAeeNUdbDgunxsnrzO3seZ+cwRrpbWlLvtHRrjpnf0tjKfdGzE+pYuKI4boHBX5zbVnuDYp15YkFSc7HJT.bMacP.8xosW7a31SlNv8x1pXOLa1bA5RpubTQeHx1iHzgiL5X4aaOXXdeI0VED7ZkTLiNjGlRjZ1.2NfDHQAvNoO8WMZq4QsQFTtVYJmlckQY8E7FTtsvfxvfY34KlimunMURBKX50ux6uUxKjdOSwWjGUsV1jhqsHJVyNqFy6RN9v9u5epfi4heq7cqZqtrbQA6+P19sHBWlU29pe3upfUe9fO82mwyoRdWDCKRHcrYC.WWYVh9BCVBOkY4eFWAK0YsehsLdhK10mFDPhgU1Et1KrhbusaGgU5MnXluBMeGlPusB+wLrrbCupt7yT.2kTpKSUmjbnYoIleEv6rtfeao3sr6QkdipliKUAGgabdevwrucnt8dPTwSVPvUr69Kue9PAzOJFKo7gGhkwTHwx9nwg8gjUOBr5bUgKPl0RpiQ5wapFq7.8Ib+zAuFdxTtkZrUlxsxUhBwdwhy7zUPTecxZoR.NwS+vrZ1GpF6tEJsphoeND9Xoy77JOUyA7d2Tfe4ME38uo.+paJvGbSA902TfO7+Gn5aYexXoHTerAgNr2dokjsr1iqZYJMaE8e.G1gEK
The issue now is the callback is triggered immediately when the label is 're-interacted' with
-
@rglides What is Enter here? I don't see it declared anywhere
if (key == Enter ...
Edit: Actually that keypress callback doesn't look valid, you should only get one parameter which would be
event
. -
@d-healey Enter is for the setConsumedKeyPresses right? Guessing I'm wrong but I thought the method was setConsumedKeyPresses("Enter") and then if key == Enter, do I not need to do this? seems to work for me
-
@rglides said in How to trigger label callback on enter/return but not on focus change?:
Enter is for the setConsumedKeyPresses right?
Not unless you define it. Your if statement is currently the equivalent of
if (key == undefined ...
-
@rglides Ha! yeah, I changed it to if (Label1.get("editable")) and it works, ok little lesson learned. Still, this works, almost
-
@rglides said in How to trigger label callback on enter/return but not on focus change?:
if (Label1.get("editable")
The label is always editable isn't it?
-
@d-healey Sure, but for some reason it has allowed clicking outside of the label and not triggering the callback
-
@rglides said in How to trigger label callback on enter/return but not on focus change?:
@d-healey Sure, but for some reason it has allowed clicking outside of the label and not triggering the callback
It's still triggering it here. Add
Console.print("test");
inside the if statement, you can remove all the update panels stuff, it's just complicating the picture. -
@rglides uggggh, ok, HISE has defeated me yet again, my logic was to start with an if statement to see if the callback could be avoided, so I thought I had it. Turns out the callback just won't trigger at all regardless of the if statement, until the label is re-interacted with (or when hitting enter) so I have proved useless again. But I tried, and it was fun to feel like I figured something out, briefly
-
@rglides said in How to trigger label callback on enter/return but not on focus change?:
I tried, and it was fun to feel like I figured something out, briefly
You've done no worse than my attempt :)
-
@d-healey Thank you. This really should just be a core feature, it seems like basic stuff